category name  »  page title date

コメント設定

セルへのコメントづけは、右クリック「コメントの挿入」で行うことができます。しかし、これを 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