読者です 読者をやめる 読者になる 読者になる

SAラン広域セン支の覚え書き

・ボダブレ辞書 ・各種日本語入力ソフトの辞書解説 ・実用Excel VBA

(Excel VBA) セルのコメントを一括で表示・非表示にする

セルのコメントを一括表示する

はじめに

セルのコンテキストメニュー(右クリックメニュー)にある「セルの表示/非表示」はセル単位でしか働かず、複数セルを選択していてもあくまで現在のセルにしか効果はありません。

選択範囲のセルのコメントを一括で表示にする

Sub AllCommentVisibleTrue()
    Dim c As Range    
    For Each c In Selection
        c.Comment.Visible = True
    Next c
End Sub

選択範囲のセルが全てコメントを含んでいればうまく動きますが、選択範囲にコメントが含まれていないセルがあるとエラーになります。ならばエラーを無視すればいいのでは?

    On Error Resume Next

これをDim行の上に入れることで動きました。この行の意味は「エラーが起きたら無視して次へ進め」です。

アクティブシートに含まれるコメントを一括で表示にする

それではセルの選択なしにアクティブシートのコメントを一括で表示する場合はどうなるでしょう。先ほどまではセルに対するcommentオブジェクトを操作していますが、こちらではワークシートに対するcommentsコレクションを操作します。

Sub SheetCommentVisibleTrue()
    ' ** アクティブシートのコメントを一括で表示にする **
    For i = 1 To ActiveSheet.Comments.Count
        ActiveSheet.Comments(i).Visible = True
    Next i
End Sub

非表示の場合

commentオブジェクトやcommenntsコレクションのVisibleプロパティに
表示  :True
非表示:False
を設定する