【ExcelVBA】シートのセルに設定されているコメントを表示・非表示にするには

この記事では、シートのセルに設定されているコメントを表示・非表示にする方法についてご説明します。

【動画】シートのセルに設定されているコメントを表示・非表示にする実際の動き

本題に入る前に、まずは次の動画をご覧ください。


VisibleプロパティにTrueまたはFalseを設定し、指定した範囲内のセルのコメントを表示または非表示にします。

マクロ作成の流れ

STEP.1
コメントを表示または非表示したい範囲内のセルを指定する
コメントを表示または非表示したい範囲内のセルを指定します。
STEP.2
VisibleプロパティにTrueまたはFalseを設定し、指定した範囲内のセルのコメントを表示または非表示にする
VisibleプロパティにTrueまたはFalseを設定し、指定した範囲内のセルのコメントを表示または非表示にします。

Excelファイルの例

お見せしたExcelのシートでは、次のセルにコメントが設定されています。

  1. B2
  2. F3
  3. D6
  4. C9
  5. F11
  6. G3
  7. G10
  8. B14

今回は①~⑤のセル(表の中のセル)に設定されているコメントを表示・非表示にします。

⑥~⑧のセル(表の外のセル)に設定されているコメントには何もしません。

コードの例

Excelのマクロのコード(例)

Option Explicit

Private Sub btn_commentShowOnOff_Click()

    Dim rng     As Range
    Dim rngWk   As Range
    
    'セルの範囲を取得する
    Set rng = Worksheets("Top").Range("B2:F11").SpecialCells(xlCellTypeComments)
    
    If btn_commentShowOnOff.Caption = "コメントを表示" Then
    
        'ボタンが「コメントを表示」と表示されている場合
    
        For Each rngWk In rng
        
            'コメントを表示する
            rngWk.Comment.Visible = True
        
        Next rngWk
        
        'ボタンに文言を設定する
        btn_commentShowOnOff.Caption = "コメントを非表示"
        
    ElseIf btn_commentShowOnOff.Caption = "コメントを非表示" Then
    
        'ボタンが「コメントを非表示」と表示されている場合
    
        For Each rngWk In rng
        
            'コメントを表示しない
            rngWk.Comment.Visible = False
        
        Next rngWk
        
        'ボタンに文言を設定する
        btn_commentShowOnOff.Caption = "コメントを表示"
    
    End If

End Sub

注目すべきコード①

最初に見て頂きたいのは9行目です。

    'セルの範囲を取得する
    Set rng = Worksheets("Top").Range("B2:F11").SpecialCells(xlCellTypeComments)

9行目では、コメントを表示または非表示したい範囲内のセルを取得して変数「rng」に格納します。

SpecialCellsメソッドは、SpecialCellsメソッドに指定した定数に該当するセルを返します。

定数xlCellTypeCommentsは「コメントが含まれているセル」を表す定数で、コメントが設定されているセルを取得したい場合にSpecialCellsメソッドの引数にこのxlCellTypeCommentsを指定します。

また、RangeオブジェクトにB2からF11のセルの範囲を指定していますが、B2からF11の範囲内に存在するコメントが設定されているセルを取得しています。

注目すべきコード②

次に見て頂きたいのは15行目から20行目と、29行目から34行目です。

        For Each rngWk In rng
        
            'コメントを表示する
            rngWk.Comment.Visible = True
        
        Next rngWk
        For Each rngWk In rng
        
            'コメントを表示しない
            rngWk.Comment.Visible = False
        
        Next rngWk

15行目または29行目で、For Eachステートメントを使って「注目すべきコード②」で取得したコメントが設定されているセルを取得します。

18行目ではVisibleにTrueを設定してコメントを表示し、32行目ではVisibleにFalseを設定してコメントを非表示にします。

動作確認

マクロ実行前

下のExcelは、マクロを実行する前の状態です。

マクロ実行後

コメントを表示または非表示したい範囲内のセルのコメントが全て表示された状態。

コメントを表示または非表示したい範囲内のセルのコメントが全て非表示になった状態。

最後に

本記事では、シートのセルに設定されているコメントを表示・非表示にする方法についてご説明しました。

手動でもコメントの表示・非表示は一括でできますが、マクロでもコメントの表示・非表示を一括で行いたい場合は参考にしてみてくださいね。

プログラミングのスキルを習得するなら

プログラミングのスキルを習得したい、今のスキルをもっと高めたい、そう考えているなら「プログラミングスクール」がおすすめです。

プログラミングのスキルの基礎を身につけるなら「TechAcademy」で1週間の無料体験があるので、これで「プログラミングの基礎」を学ぶのにおすすめですよ。

→ TechAcademyの「1週間 無料体験」はこちら