エクセルのコメントを取得するには?

解決


f4_tak  2010-10-22 16:55:23  No: 71990  IP: [192.*.*.*]

VC6.0+Office2003でシートからデータを取得は出来ているのですが
コメントを取得する方法が解りません。

コメント"start","end"で範囲指定させたいのです。

マクロでは"NoteText"を使うようなので参考にし、あてずっぽうですが
pRange = pSheet.GetRange(COleVariant("C3"), COleVariant("C3"));
CString cmt1 = pRange.NoteText(COleVariant(""),COleVariant((long)1),COleVariant((long)100));
pRange = pSheet.GetRange(COleVariant("C4"), COleVariant("C4"));
CString cmt2 = pRange.NoteText(COleVariant(""),COleVariant((long)1),COleVariant((long)100));
pRange = pSheet.GetRange(COleVariant("C5"), COleVariant("C5"));
CString cmt3 = pRange.NoteText(COleVariant(""),COleVariant((long)1),COleVariant((long)100));
で試しましたがコメントは取得できませんでした。

NoteText()の情報がなかなか見つからず引数の意味も解っていない状態ですが
アドバイスがあれば宜しくお願いします。

編集 削除
Blue  2010-10-22 17:11:58  No: 71991  IP: [192.*.*.*]

第一引数に文字列を指定してしまうとstartに指定した位置から置き換えてしまうようです。

第一引数を 引数を指定しない=vtMissingを指定 としてみてはどうでしょうか?

編集 削除
f4_takeda  2010-10-22 17:50:42  No: 71992  IP: [192.*.*.*]

ありがとうございました。
コメントが取得できました。

CString cmt1 = pRange.NoteText(vtMissing,COleVariant((long)1),COleVariant((long)100));

編集 削除
Blue  2010-10-22 17:57:10  No: 71993  IP: [192.*.*.*]

ちなみに
>COleVariant((long)1)
とするなら
COleVariant(1L)
としたほうがすっきりするかな。

編集 削除
f4_takeda  2010-10-22 18:09:29  No: 71994  IP: [192.*.*.*]

Webで拾ったソースが
COleVariant((long)1)
になっていたので、そのまま使っていました。
COleVariant(1L)
参考にさせてもらいます。

編集 削除