日本語入力ソフトとVBAの覚え書き

・各種日本語入力ソフトの辞書解説 ・ちょっと楽になるExcel VBA集

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

f:id:dz_dzone:20170724134148j:plain

(追記) 気付いたんだけど、校閲タブのコメントグループにボタンがあった

これについては全くの見落としでしたが、よく見たら校閲タブのコメントグループに完全にこれ!っていうボタンが用意してありました。
f:id:dz_dzone:20170819144921j:plain

  • コメントの表示/非表示 :セル単位でのトグルボタン
  • 全てのコメントの表示 :シート単位でのトグルボタン

それはそれとしてマクロでやる場合の記事が以下になります。

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

はじめに

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

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

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
を設定する

以上。