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列にメモに入力されている文字列を抽出し、表示しています。
メモが多く、表示するのが大変などに、このようなプログラムを用意しておくといいかもしれません。