対象:Excel2007, Excel2010, Excel2013, Windows版Excel2016
「excel vba コメントをつけたセル for」
という検索で、このサイト・インストラクターのネタ帳へのアクセスがありました。
VBA(Visual Basic for Applications)で、コメントの挿入されているセルだけをループ処理するには、どのようなコードを書けばいいのかを探している方による検索です。
[スポンサードリンク]
コメントの挿入されているセルをループ処理するサンプルマクロ
以下のようなFor Each~Nextループで、コメントの挿入されているセルだけをループ処理することができます。
Sub コメントの挿入されているセルをループ処理する()
Dim rng As Range
For Each rng In Cells.SpecialCells(xlCellTypeComments)
MsgBox rng.Address
Next rng
End Sub
Dim rng As Range
For Each rng In Cells.SpecialCells(xlCellTypeComments)
MsgBox rng.Address
Next rng
End Sub
上記のマクロを実行すると、アクティブシート上のコメントの存在するセルのアドレスが、順番にメッセージボックスへ表示されます。
「Cells.SpecialCells(xlCellTypeComments)」というオブジェクト式で、コメントの含まれるセルを表すコレクションとしてのRangeオブジェクトが取得できるので、For Each~Nextループで個々のRangeオブジェクトを取得して、そのセル番地を取得しています。
エラートラップ入りのサンプルマクロ
上記のマクロでは、コメントの挿入されているセルが存在しないときに実行時エラーが発生します。
エラートラップを入れるなら以下のようなマクロです。
Sub コメントの挿入されているセルをループ処理する_エラートラップあり()
On Error GoTo ERR_HNDL
Err.Clear
MsgBox "コメントの挿入されているセルはありません。"
End Sub
On Error GoTo ERR_HNDL
Dim rng As Range
For Each rng In Cells.SpecialCells(xlCellTypeComments)
MsgBox rng.Address
Next rng
Exit Sub
ERR_HNDL:Err.Clear
MsgBox "コメントの挿入されているセルはありません。"
End Sub
[スポンサードリンク]
Home » Excel VBA Rangeオブジェクト » コメント » コメントの挿入されているセルをループ処理するExcelマクロ