Excelでコメントを印刷する方法をご紹介したネタは、このサイト・インストラクターのネタ帳の人気ページの一つです。
「エクセル コメント 印刷」
といった検索でのアクセスもよく見かけます。
印刷するだけでいいのなら、これまでの記事でご紹介したような方法でOKですが、挿入されているコメントを一覧で欲しいという要望も実務では出てきます。
コメント一覧を作成するサンプルマクロ
Excelにはコメント一覧を出力する機能は用意されていないのでVBA(Visual Basic for Applications)で、マクロを作成しましょう。
Const ROW_HEAD As Long = 1 ' コメント一覧の見出し行とする行番号
Dim cmnt As Comment
Dim cnt_sh As Long ' ワークシートの枚数
Dim num_row As Long ' コメントを一覧にして出力する行番号
Dim msg As String
' コメント一覧を作成するシートの挿入と見出しの作成
Worksheets.Add Before:=Worksheets(1)
Cells(ROW_HEAD, 1).Value = "ワークシート名"
Cells(ROW_HEAD, 2).Value = "セル番地"
Cells(ROW_HEAD, 3).Value = "コメント"
' コメント一覧の作成
num_row = ROW_HEAD
For cnt_sh = 2 To Worksheets.Count
For Each cmnt In Worksheets(cnt_sh).Comments
num_row = num_row + 1
Cells(num_row, 1).Value = Worksheets(cnt_sh).Name
Cells(num_row, 2).Value = cmnt.Parent.Address(False, False)
Cells(num_row, 3).Value = cmnt.Text
Next cmnt
Next cnt_sh
If num_row = ROW_HEAD Then
' コメントが存在しないときに挿入したコメント一覧用シートを削除
Application.DisplayAlerts = False
Worksheets(1).Delete
Application.DisplayAlerts = True
msg = "アクティブなブックにコメントは存在しません。"
Else
msg = "『" & Worksheets(1).Name & "』にコメント一覧を作成しました。"
End If
MsgBox msg
End Sub
コメント一覧の見出し行とする行番号は、定数で
Const ROW_HEAD As Long = 1
と1行目を指定しています。
他の行を見出し行としたい場合はこの「1」を修正していただければOKです。
Home » Excel VBA Rangeオブジェクト » コメント » コメントの一覧を出力するExcelマクロ