VBAでのセルへのコメントの追加方法・削除について紹介します。
コメントを追加する
コメントを追加するサンプルマクロ
セルにコメントを追加するサンプルマクロです。
上図の状態のセルに次のマクロを実行してコメントを追加します。
Sub コメント追加()
Cells(5, 5).AddComment ("コメントを追加しました")
With Cells(7, 5)
.AddComment ("コメントを追加・表示しました")
.Comment.Visible = True
End With
End Sub
サンプルマクロの説明
サンプルでは3行目と6行目でcells(5,5)とcells(7,5)に対してそれぞれコメントを追加しています。
コメントを追加するには、次の書式で行います。
対象のセル .Addcomment(“コメント“)
ここでのポイントは一度にコメントを追加できるのは一つのセルだけなので、複数のセルへコメントを追加する場合はループ処理や個別に対応していきます。
次に、cells(7,5)に対しては7行目で追加したコメントを表示する指示を与えています。
コメントの表示・非表示を切り替えるには次の方法で行います。
対象のセル.Comment.Visible = True
コメントを表示する場合はTrue、表示しない場合はFalseを指定します。
コメントの有無を確認する
AddCommentメソッドでは、既にコメントが記入されているセルに対してコメントを追加しようとするとエラーとなります。
そこで、エラー対象のセルにコメントがあるかどうかを確認する必要があります。
コメントの有無を確認する方法はいくつかありますが、無難な方法はTypeName関数のt使用です。
TypeName関数の良いところは、吹き出しだけの状態のコメントも判断可能な点です。
コメントの有無を確認するサンプルマクロ
上の画像のCells(7,1)のコメント有無を調べるサンプルマクロです。
Sub コメントの有無を確認()
If TypeName(Cells(7, 1).Comment) = "Comment" Then
MsgBox ("コメンがあります")
End If
End Sub
上記マクロを実行すると、下の図のようにメッセージが表示されます。
サンプルマクロの説明
このマクロでは、セルにコメントがある場合に”コメントがあります”のメッセージを表示させます。コメントの判断を行っているのが、TypeName関数で書式は次の通りです。
TypeName( 変数 )
この関数は、引数に変数を与えるとその変数のデータ型名を返すものです。
先ほどのマクロでは、変数の部分に”Cells(7, 1).Comment”を与えています。もしCells(7,1)にコメントがなかった場合はNothingを返します。
コメントを削除する
コメントを削除するには、「ClearComments」メソッドを使用します。ClearCommentsメソッドは、一度に任意の範囲内のコメントを削除可能であり、対象の範囲にコメントがない場合でもエラーが発生しません。
対象のセル or 対象の範囲 .ClearComments
コメント削除のサンプルマクロ
下の図のように複数のセル記入されているコメントを一括で削除するマクロです。
Sub コメント削除()
Range(Cells(3, 3), Cells(10, 7)).ClearComments
End Sub
このマクロでは、コメントが記入されていない範囲も削除の対象になっていますが、問題なく処理が実行されコメントが削除されています。
コメント