コメントの設定
セルにコメントを新規に挿入するには、AddComment メソッド を使用します。挿入されたコメントに、文字列を追加、変更したり、コメントを削除したりするには、Comment プロパティ を使用します。ワークシート内のコメント全体を操作するには、Comments プロパティ を使用します。
AddComment メソッド
指定されたセルにコメントを挿入します。
【書式】
object.AddComment ( [ text ] )
引数・戻り値
- object ・・・ 対象となる セル(Range オブジェクト)を指定します。
- text ・・・ コメントの文字列を指定します。
- 戻り値 ・・・ コメントを表す Comment オブジェクト を返します。
すでにコメントが有るセルに、このメソッドを使用するとエラーになります。そのため、事前に、TypeName 関数 等を使って、コメントが挿入されているかどうかを判定します。
If TypeName ( ActiveCell.Comment ) = “Nothing” Then
ActiveCell.AddComment.Text “コメント挿入”
End If
※ TypeName ( ActiveCell.Comment ) で、コメントが挿入されている場合は、“Comment” という文字列が返ります。
ClearComment メソッド
指定されたセル範囲からすべてのコメントを消去します。
【書式】
object.ClearComment
引数・戻り値
- object ・・・ 対象となる Range オブジェクトを指定します。
Comment プロパティ
【書式】
object.Comment
引数・戻り値
- object ・・・ 対象となる Range オブジェクトを指定します。
- 戻り値 ・・・ object で指定したセル範囲の左上端に関連付けられているコメントを表す Comment オブジェクト を返します。
Comment プロパティの主なメソッド
- Comment.Delete
コメントを削除します。
- Comment.Next
次のコメントを表す Comment オブジェクト を返します。このメソッドは、1 つのシートだけで実行されます。シートの最後のコメントでこのメソッドを使用すると、Null 値が返されます。
- Comment.Previous
前のコメントを表す Comment オブジェクト を返します。このメソッドは、1 つのシートだけで実行されます。シートの最初のコメントでこのメソッドを使用すると、Null 値が返されます。
- Comment.Text ( [ text, start, overwrite ] )
コメント(文字列型:String)を返します。
text:追加するテキストを指定します(省略可)。
start:文字列を配置する文字の位置番号を指定します。省略すると、コメントの既存の文字列は削除されます(省略可)。
overwrite:True を指定すると、既存の文字列が指定した文字列に置き換えられます。False を指定すると、既存の文字列に指定した文字列が追加されます。既定値は、False(省略可)。
Comment プロパティの主なプロパティ
- Comment.Visible = boolean
オブジェクトを表示するかどうかを表すブール型(Boolean)の値を設定します。値の取得および設定が可能です。
boolean:コメントを表示する場合、True を指定、非表示にする場合、False を指定します。
- Comment.Shape
コメントに結合される図形を表す Shape オブジェクト を返します。
※ 図形を選択する場合、コメントを表示した状態にします( Comment.Visible プロパティ = True )。非表示の状態で選択すると、エラーになります。
Comments プロパティ
【書式】
object.Comments
引数・戻り値
- object ・・・ 対象となる Worksheet オブジェクトを指定します。
- 戻り値 ・・・ 指定されたシート内の全てのコメント(Comments コレクション)を返します。
Comment プロパティの主なメソッド
- Comments.Item ( index )
単一の Comment オブジェクト を返します。
index:オブジェクトのインデックス番号を指定します。これを指定することで、シート内の各コメントにアクセスし、操作することが可能になります。
Comment プロパティの主なプロパティ
- Comments.Count
シート内のコメント数を表す長整数型(Long)の値を返します。
コメントの設定 使用例 1
サンプルVBAソース
123456789101112131415161718192021
Sub Sample01_Comment() With Range("B2") 'コメントがあるかどうか判定 If TypeName(.Comment) = "Nothing" Then '「B2」セルに、コメント挿入 .AddComment.Text "コメントです!!" End If 'コメントを追加 .Comment.Text vbLf & "追加のテキスト", Len(.Comment.Text) End With End Sub
実行結果
コメントの設定 使用例 2
サンプルVBAソース
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
Sub Sample02_Comment() 'コメントを全て削除 Cells.ClearComments With Range("B3").AddComment '「B3」セルに、コメント挿入 .Text "新規のコメント挿入!!" 'コメントの図形を変更( MsoAutoShapeType 列挙型 ) .Shape.AutoShapeType = msoShapeExplosion1 'コメント表示 .Visible = True End With '「B6」セルに、コメントを挿入 Range("B6").AddComment.Text "新しいコメント!!" With Range("B10") '「B6」セルに、コメントを挿入 .AddComment.Text "3番目のコメント作成" 'このコメントを非表示 .Comment.Visible = False 'これの前のコメントを非表示 .Comment.Previous.Visible = False End With 'シート上の3番めのコメントを表示 ActiveSheet.Comments.Item(3).Visible = True 'シート上の各コメントのテキストを表示 Dim str As String, i As Long For i = 1 To ActiveSheet.Comments.Count str = str & i & ":" & ActiveSheet.Comments(i).Text & vbLf Next i MsgBox str End Sub
Find メソッド(コメントの検索)使用例 実行結果
サンプルVBAソース実行前
実行後
指定されたセル範囲からすべてのコメントを消去します。
【書式】
object.ClearComment
引数・戻り値
- object ・・・ 対象となる Range オブジェクトを指定します。
【書式】
object.Comment
引数・戻り値
- object ・・・ 対象となる Range オブジェクトを指定します。
- 戻り値 ・・・ object で指定したセル範囲の左上端に関連付けられているコメントを表す Comment オブジェクト を返します。
Comment プロパティの主なメソッド
- Comment.Delete
コメントを削除します。
- Comment.Next
次のコメントを表す Comment オブジェクト を返します。このメソッドは、1 つのシートだけで実行されます。シートの最後のコメントでこのメソッドを使用すると、Null 値が返されます。
- Comment.Previous
前のコメントを表す Comment オブジェクト を返します。このメソッドは、1 つのシートだけで実行されます。シートの最初のコメントでこのメソッドを使用すると、Null 値が返されます。
- Comment.Text ( [ text, start, overwrite ] )
コメント(文字列型:String)を返します。
text:追加するテキストを指定します(省略可)。
start:文字列を配置する文字の位置番号を指定します。省略すると、コメントの既存の文字列は削除されます(省略可)。
overwrite:True を指定すると、既存の文字列が指定した文字列に置き換えられます。False を指定すると、既存の文字列に指定した文字列が追加されます。既定値は、False(省略可)。
Comment プロパティの主なプロパティ
- Comment.Visible = boolean
オブジェクトを表示するかどうかを表すブール型(Boolean)の値を設定します。値の取得および設定が可能です。
boolean:コメントを表示する場合、True を指定、非表示にする場合、False を指定します。
- Comment.Shape
コメントに結合される図形を表す Shape オブジェクト を返します。
※ 図形を選択する場合、コメントを表示した状態にします( Comment.Visible プロパティ = True )。非表示の状態で選択すると、エラーになります。
【書式】
object.Comments
引数・戻り値
- object ・・・ 対象となる Worksheet オブジェクトを指定します。
- 戻り値 ・・・ 指定されたシート内の全てのコメント(Comments コレクション)を返します。
Comment プロパティの主なメソッド
- Comments.Item ( index )
単一の Comment オブジェクト を返します。
index:オブジェクトのインデックス番号を指定します。これを指定することで、シート内の各コメントにアクセスし、操作することが可能になります。
Comment プロパティの主なプロパティ
- Comments.Count
シート内のコメント数を表す長整数型(Long)の値を返します。
サンプルVBAソース
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
Sub Sample01_Comment() With Range("B2") 'コメントがあるかどうか判定 If TypeName(.Comment) = "Nothing" Then '「B2」セルに、コメント挿入 .AddComment.Text "コメントです!!" End If 'コメントを追加 .Comment.Text vbLf & "追加のテキスト", Len(.Comment.Text) End With End Sub |
実行結果
サンプルVBAソース
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 |
Sub Sample02_Comment() 'コメントを全て削除 Cells.ClearComments With Range("B3").AddComment '「B3」セルに、コメント挿入 .Text "新規のコメント挿入!!" 'コメントの図形を変更( MsoAutoShapeType 列挙型 ) .Shape.AutoShapeType = msoShapeExplosion1 'コメント表示 .Visible = True End With '「B6」セルに、コメントを挿入 Range("B6").AddComment.Text "新しいコメント!!" With Range("B10") '「B6」セルに、コメントを挿入 .AddComment.Text "3番目のコメント作成" 'このコメントを非表示 .Comment.Visible = False 'これの前のコメントを非表示 .Comment.Previous.Visible = False End With 'シート上の3番めのコメントを表示 ActiveSheet.Comments.Item(3).Visible = True 'シート上の各コメントのテキストを表示 Dim str As String, i As Long For i = 1 To ActiveSheet.Comments.Count str = str & i & ":" & ActiveSheet.Comments(i).Text & vbLf Next i MsgBox str End Sub |
Find メソッド(コメントの検索)使用例 実行結果
サンプルVBAソース実行前
実行後