- Home ›
- Excel VBA入門 ›
- セルにコメントを付ける ›
- HERE
Commentオブジェクトとコメントの変更
コメントを表すオブジェクトはCommentオブジェクトです。Commentオブジェクトは各セルから取得することができ、取り出したいセルを表すRangeオブジェクトの「Comment」プロパティを使って取得することが出来ます。
Dim comment1 As Comment Set comment1 = Range("A1").Comment
既にコメントがあるセルの場合にはCommnetオブジェクトをが取得できますが、コメントが無いセルの「Commnet」プロパティを参照しても何もないため、取り出したオブジェクトの型を調べてみると「Nothing」となります。
例えばセルB2にはコメントが存在するが、他のセルにはコメントが無い場合に次のプログラムを実行してみます。
Sub テスト() Dim comment1 As Comment Dim comment2 As Comment Set comment1 = Range("B2").Comment Set comment2 = Range("C2").Comment MsgBox TypeName(comment1) MsgBox TypeName(comment2) End Sub
「TypeName」関数は、引数に指定したオブジェクトの型を調べてくれます。最初は「Commnet」型と表示されますが、次は「Nothing」と表示されます。セルC2にはコメントが無いため何も取得出来ていないためです。
では取得したCommnetオブジェクトを利用してみます。Commentオブジェクトの「Text」メソッドで、コメントの値を設定することが出来ます。
Dim comment1 As Comment Set comment1 = Range("A1").Comment comment1.Text "変更したコメント"
注意する点としては、コメントが設定されていないセルからはCommnetオブジェクトを取り出すことができないため当然のことながら「Text」メソッドを実行することは出来ません。その為、Commnetオブジェクトの「Text」メソッドは、既にコメントが設定されているセルに対してコメントを修正することになります。まだコメントが設定されていないセルに対してはこのメソッドは利用できませんので注意して下さい。
サンプルプログラム
では簡単なサンプルで試してみましょう。
Sub テスト() Dim comment1 As Comment Set comment1 = Range("B2").Comment comment1.Text "新しいコメント" End Sub
上記マクロを実行すると次のようになります。
今回はセルB2に既にコメントがある状態で、コメントの中身を書き換えました。
( Written by Tatsuo Ikura )