4/01/2023

Excel。VBA。シート内のメモ(旧コメント)を抽出し一覧として表示したい【Comment】

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列に、メモとして入力されている文書を表示させています。


このように、メモの内容を一覧表示することができます。