【VBA】対象シートのコメントを一括削除する方法

こんにちは、Ryoです。
昨日コメントの挿入や内容の取り込みについて書きましたが、削除について書いてないことを思い出しましたので、今回は削除についてになります。

コメントも数個なら気にもなりませんが、数十個から数百とかある場合になると手動で消すのは相当大変ですからVBAで一括削除してしまいましょう。



1.コメントを図形として全て削除する

コメントは以前の記事で紹介してますように「AutoShape(図形)」だったりします。
なので、以下のサンプルコードで図形を抽出・カウントして削除する方法でも消すことは可能です。。。が!この方法ですとセルの右上にコメントがあることを表示する赤三角が表示されたままになります。(保存して再度開くと消えるんですけどね)

Sub Comment_delete1()

  Dim shp(50) As Variant
  Dim i As Integer

  For i = ActiveSheet.Shapes.Count To 1 Step -1

      shp(i) = ActiveSheet.Shapes(i).Name
 
       If InStr(shp(i), "Comment") = 1 Then
        
          ActiveSheet.Shapes(shp(i)).Delete
   
       End If
     
   Next i
   
   Erase shp
   
End Sub

アクティブシート内に50個以内の図形があると仮定して、ActiveSheet.Shapes.Countで数を把握し、For~Nextで最大数から処理ごとにマイナスしていきます。
後は都度図形の名前を確認し、”Comment”が含まれるものを削除する処理をしています。

処理後のセル表示にやや難がありますが、こんな方法でも削除することは出来ますので
何かの参考になればと思い載せておきます。

2.綺麗さっぱりコメントを削除する

以下のサンプルコードでは綺麗さっぱり全てのコメントを削除してくれます。
セル上の表示もしっかり消えますから、一般的にはこの方法が多いと思います。

Sub Comment_delete2()

 On Error Resume Next
 Cells.SpecialCells(xlCellTypeComments).ClearComments

End Sub

特定の条件で一括指定する場合、「SpecialCells」を使うと良いです。
このxlCellTypeCommentsは「コメントが含まれるセル」という意味なので、対象シートで
コメントがあるセルは全て対象となります。

その他には空白セルを対象とする「xlCellTypeBlanks」、数式を含むセルを対象とする
「xlCellTypeFormulas」辺りは私も良く使いますから覚えておくと便利ですよ。



以上、コメントを削除する方法についてでした!
手作業で削除するのは地味に手間ですから、これでスカッと消しちゃってくださいね。
今回の記事で何かの参考になれば幸いです。

Ryo

スポンサーリンク
スポンサーリンク

楽天トラベル

シェアする

フォローする

スポンサーリンク

楽天トラベル