セルへのコメントづけは、右クリック「コメントの挿入」で行うことができます。しかし、これを Macro でやりたい。
そうすると、どんなよいことがあるかといえば、コメント全体を一覧して調整することができること、用語の統一や追加、幅の調整などを一括して行えること、などでしょうか。
Macro でコメントを追加したり、書式を整えたりする方法については、「大体でIT」さんのブログ(https://daitaideit.com/vba-comment/#mokuzi5-1)で丁寧に紹介されています。
これを参考にさせていただきながら、一覧表をもとにコメントを追加する関数を作ってみました。
ここでは、対象とするセルをすべて名前で参照することにしていますが、これらの名前はすべてグローバルな名前として定義されていることを前提にしています。
"CommentTopLeft"という名前のセルは、どこかのワークシートで定義しているコメント一覧の先頭左上のセルです。
一覧表は、このセルから始まって、コメントをつけるセル名、コメント内容の組み合わせが下の行に連続して記載されています。これがセル名がなくなるまでスキャンされて、コメントが付けられます。コメント内容が空白の場合は、既存のコメントが削除されます。
この一覧表は、下の右図のようになっていて、コメントが追加された結果は左右の図のようになっています。
InstallComments()
'----- Cell Name
Private Const commentTopLeftCellName = "CommentTopLeft"
'----- コメント設定
Public Sub InstallComments()
Dim tlCell, index, cellName, comment
Set tlCell = Range(commentTopLeftCellName)
index = 0
Do While tlCell.Offset(index, 0) <> ""
With tlCell
cellName = .Offset(index, 0).value
comment = .Offset(index, 1).value
End With
Range(cellName).ClearComments
If Not IsEmpty(comment) Then
With Range(cellName).AddComment
.Visible = False
.Text Text:=comment
.Shape.TextFrame.AutoSize = True
End With
End If
index = index + 1
Loop
Application.DisplayCommentIndicator = xlCommentIndicatorOnly
End Sub