9/01/2024

Excel。VBA。シート内に入力されているメモを抽出した一覧をつくりたい【memo】

Excel。VBA。シート内に入力されているメモを抽出した一覧をつくりたい

<VBA:Comment.Text>

Excelのシート内に、入力されているメモ。


以前は、コメントといっていましたが、結構注意書きとかが入力されていることがあります。

メモを抽出した一覧
 

基本的にメモは、マウスをそのセルの上に乗せることで、表示されてるようになっています。

ただ、それだと、面倒です。


また、メモを表示することできますが、メモ同士が重なってしまい、見にくいこともあります。


さらに、そのメモの内容を、取り出した一覧となると、コピーするのも面倒です。


そこで、Excel VBAでプログラムを作って対応したいと思います。


Sub メモ内容をセルに抽出()

    Dim memo As Range

    Dim lastrow As Long

    Dim i As Long

    

    i = 1

        

    With Range("a1").CurrentRegion

        For Each memo In .SpecialCells(xlCellTypeComments)

            Cells(i, "e") = memo.Address(False, False)

            Cells(i, "f") = memo.Comment.Text

            i = i + 1

        Next

    End With

End Sub


まずは、実行してみます。


ご覧のように、メモの内容を、別のセルに抽出し、表示することができました。


では、プログラムを確認します。

最初は変数宣言です。

Dim memo As Range

Dim lastrow As Long

Dim i As Long


表示する行番号のために 変数iに1を代入します。

 i = 1

        

可読性をあげるために、Withをつかっています。

With Range("a1").CurrentRegion ~ End With

これで、「Range("a1").CurrentRegion」を省略することができます。


For Each memo In .SpecialCells(xlCellTypeComments) は、メモが入力されているセルを探しています。


Cells(i, "e") = memo.Address(False, False) は、E列に、メモが入力されているセル番地を表示する様に設定しています。


Cells(i, "f") = memo.Comment.Text は、F列にメモに入力されている文字列を抽出し、表示しています。


メモが多く、表示するのが大変などに、このようなプログラムを用意しておくといいかもしれません。