第94回.コメント(Comment)
VBAでセルにコメントを入れたり、編集したり、削除したりするVBAコードを解説します。
セルに対する注意書き等をコメントとして入れておくことで、使いやすいシートにします。
コメントに関する各種オブジェクト
名前 | 説明 | |
プロパティ | Comment | セル範囲の左上隅のセルに関連付けられているコメントを表す Comment オブジェクトを取得します。 |
メソッド | AddComment | 範囲にコメントを追加します。 |
ClearComments | 指定されたセル範囲からすべてのコメントを消去します。 |
Commentオブジェクト
名前 | 説明 | |
プロパティ | Application | 対象となるオブジェクトが指定されない場合は、Excel アプリケーション (Application オブジェクト) を返します。 対象となるオブジェクトが指定された場合は、指定されたオブジェクトを作成した Application オブジェクトを返します。 OLE オートメーションを使っていて、オブジェクトのアプリケーションにアクセスするときなどに、このプロパティを使います。 値の取得のみ可能です。 |
Author | コメントの作成者を示す文字列を返します。 値の取得のみ可能です。 文字列型 (String) の値を使用します。 |
|
Creator | 現在のオブジェクトが作成されたアプリケーションを示す 32 ビットの整数を取得します。 値の取得のみ可能です。長整数型 (Long) の値を使用します。 |
|
Parent | 指定されたオブジェクトの親オブジェクトを取得します。 値の取得のみ可能です。 |
|
Shape | 指定されたコメントに結合される図形を表す Shape オブジェクトを返します。 | |
Visible | オブジェクトを表示するかどうかを表すブール型 (Boolean) の値を設定します。 値の取得および設定が可能です。 |
|
メソッド | Delete | オブジェクトを削除します。 |
Next | 次のコメントを表す Comment オブジェクトを返します。 | |
Previous | 前のコメントを表す Comment オブジェクトを返します。 | |
Text | コメントの文字列を設定します。 |
Commentsコレクション
複数セルのコメントを扱う場合に使うので、通常はあまり使う事はないと思います。
名前 | 説明 | |
プロパティ | Application | 対象となるオブジェクトが指定されない場合は、Excel アプリケーション (Application オブジェクト) を返します。 対象となるオブジェクトが指定された場合は、指定されたオブジェクトを作成した Application オブジェクトを返します。 OLE オートメーションを使っていて、オブジェクトのアプリケーションにアクセスするときなどに、このプロパティを使います。 値の取得のみ可能です。 |
Count | コレクションに含まれるオブジェクトの数を表す長整数型 (Long) の値を返します。 | |
Creator | 現在のオブジェクトが作成されたアプリケーションを示す 32 ビットの整数を取得します。 値の取得のみ可能です。長整数型 (Long) の値を使用します。 |
|
Parent | 指定されたオブジェクトの親オブジェクトを取得します。 値の取得のみ可能です。 |
|
メソッド | Item | コレクションから単一のオブジェクトを返します。 |
コメントの挿入
Range("A1").AddComment "練習"
Textは、コメント テキストを指定します。
Textは省略可能です、その場合はコメントの枠だけが挿入されることになります。
既にコメントが挿入されている場合は、AddCommentはエラーとなります。
コメントの削除
または、
Range.Comment.Delete
Range("A1").ClearComments
Range("A1").Comment.Delete
どちらでもコメントは削除できます。
ただし、対象セルにコメントがない場合は、
Range.ClearCommentsは問題なく実行できますが、
Range.Comment.Deleteは、エラーとなります。
コメントの編集
Range.Comment
これでCommentオブジェクトを取得し、
そのCommentオブジェクトのプロパティ、メソッドを使います。
Range("A1").Comment.Text "練習"
実践例.
Sub sample1() Dim cm As Comment With Range("A1").AddComment .Text Text:="yamaoka:" & vbLf & "コメント" .Visible = True .Shape.Select With Selection.Font .Size = 14 .Bold = True End With .Visible = False End With End Sub |
マクロの記録を参考にして普通に書くとこんな感じになったりしますが、
.Shape.Select
With Selection.Font
この部分が、どうにもスッキリしていないです。
そこで、以下のようにします。
Sub samle2() Dim cm As Comment With Range("A1").AddComment .Text Text:="yamaoka:" & vbLf & "コメント" With .Shape.TextFrame .Characters.Font.Size = 14 .Characters.Font.Bold = True End With End With End Sub |
Shape.TextFrame
コメントとは直接関係なくなってしまうのですが、
オートシェイプのテキストを変更する場合の指定です。
こちらもご参考に
コメントの位置を移動する
同じテーマ「マクロVBA入門」の記事
第91回.条件付き書式(FormatCondition)
第92回.名前定義(Names)
第93回.ピボットテーブル(PivotTable)
第95回.ハイパーリンク(Hyperlink)
第96回.グラフ(Chart)
第97回.図形(Shape)
第98回.Findメソッド(Find,FindNext,FindPrevious)
第99回.Replaceメソッド(置換)
第100回.InputBoxメソッド(インプットボックス)
第101回.Midステートメント
新着記事 ・・・新着記事一覧を見る
VBAを定型文で覚えよう|ExcelマクロVBA技術解説(3月26日)
VBAスタンダード試験対策まとめ|MOS VBAエキスパート対策(3月16日)
ユーザーフォームとメニューの操作|MOS VBAエキスパート対策(3月14日)
ファイルの操作|MOS VBAエキスパート対策(3月14日)
ユーザーフォームの各種イベント|Excelユーザーフォーム(3月13日)
レジストリの操作|MOS VBAエキスパート対策(3月12日)
変数と配列|MOS VBAエキスパート対策(3月12日)
Colorプロパティの設定値一覧|VBA技術解説(3月12日)
APIとOLEオートメーション|MOS VBAエキスパート対策(3月11日)
エラーへの対処|MOS VBAエキスパート対策(3月10日)
アクセスランキング ・・・ ランキング一覧を見る
1.最終行の取得(End,Rows.Count)|VBA入門
2.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
3.RangeとCellsの使い方|ExcelマクロVBA入門
4.Range以外の指定方法(Cells,Rows,Columns)|VBA入門
5.変数とデータ型(Dim)|ExcelマクロVBA入門
6.ひらがな⇔カタカナの変換|エクセル基本操作
7.マクロって何?VBAって何?|ExcelマクロVBA入門
8.定数と型宣言文字(Const)|ExcelマクロVBA入門
9.とにかく書いて見よう(Sub,End Sub)|VBA入門
10.繰り返し処理(For Next)|ExcelマクロVBA入門
このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。
記述には細心の注意をしたつもりですが、
間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。
なお、掲載のVBAコードは自己責任で使ってください。万一データ破損等の損害が発生しても責任は負いません。