Excel。VBA。シート内のメモ(旧コメント)を抽出し一覧として表示したい
<VBA: Comment.Text>
シート内にあるメモ(以前はコメントといっていた)を確認するのに、「すべてのメモを表示」ボタンをクリックして、表示させてもいいのですが、重なったりすると確認するのが大変です。
そこで、メモの内容を、別のセルに抽出して、一覧表示したいわけです。
ただ、いちいち表示して、その内容をコピーして貼り付けるというのも面倒です。
こういう場合、Excel VBAでプログラム文を作って対応していきます。
次のプログラム文をつくりました。
Sub メモ抽出()
Dim memo As Range
Dim lastrow As Long
lastrow = Cells(Rows.Count, "a").End(xlUp).Row + 2
With Range("a1").CurrentRegion
For Each memo In .SpecialCells(xlCellTypeComments)
Cells(lastrow, "a") = memo.Address(False, False)
Cells(lastrow, "b") = memo.Comment.Text
lastrow = lastrow + 1
Next
End With
End Sub
では、実行して確認してみましょう。
このように、A8を起点として、メモを一覧表示できました。
では、プログラム文を確認しておきましょう。
最初は、変数宣言です。
Dim memo As Range
Dim lastrow As Long
lastrow = Cells(Rows.Count, "a").End(xlUp).Row + 2
lastrowには、表の最終行番号を代入していますが、表と一行空けて、抽出したコメント表をつくりたいので「+2」しています。
With Range("a1").CurrentRegion ~ End With
「Range("a1").CurrentRegion」を何度も入力するのは面倒なので、With文をつかって省略しています。
For Each memo In .SpecialCells(xlCellTypeComments) ~ Next
メモが入力されているセルを探す作業をしています。
Cells(lastrow, "a") = memo.Address(False, False)
A列に、メモが入力してあるセル番地を表示させています。
Cells(lastrow, "b") = memo.Comment.Text
B列に、メモとして入力されている文書を表示させています。
このように、メモの内容を一覧表示することができます。