複数のコメント内を検索する
A1:A20にあるメモを1つずつ調べ、検索語を含むものをすべて出力します。
実行前に確認
- 対象は旧形式コメント(メモ)です。現在のスレッド形式コメントは含みません。
1サンプルコード
Sub Example1164()
Dim ws As Worksheet
Dim c As Range
Dim n As Long
Set ws = ThisWorkbook.Worksheets("Sheet1")
For Each c In ws.Range("A1:A20").Cells
If Not c.Comment Is Nothing Then
If InStr(1, c.Comment.Text, "確認", vbTextCompare) > 0 Then
Debug.Print c.Address, c.Comment.Text
n = n + 1
End If
End If
Next c
MsgBox n & "件見つかりました。"
End Sub表で見る処理のイメージ実行前・実行後のセルを見比べる
セルの値ではなく、旧形式コメント(メモ)を検索します。
A・B・Cは列、1・2・3は行です。例えば「B2」はB列の2行目のセルです。この表は説明用のサンプルです。
実行前
| A | |
|---|---|
| 1 | 商品 |
| 2 | りんご |
| 3 | みかん |
| 4 | ぶどう |
実行後
| A | |
|---|---|
| 1 | 商品 |
| 2 | りんご(注目セル) |
| 3 | みかん |
| 4 | ぶどう(注目セル) |
色付きは注目する場所です。「—」は未入力、「(空文字)」は数式などが返す空の文字列を表します。
A2のメモ本文を「価格を確認」、A4のメモ本文を「数量を確認」とした例です。他のA1:A20に該当メモはありません。セルの値は変わりません。Debug.Printは $A$2 と「価格を確認」、$A$4 と「数量を確認」を出力。MsgBox:2件見つかりました。
使い方・実行手順を確認する4つの手順で、コードの使い方を確認できます
- 1
練習用のブックを.xlsm形式で保存し、Sheet1という名前のシートを用意します。A1:A20の数セルに[新しいメモ]で「確認」入りの文を書きます。
- 2
Alt+F11でVBEを開き、[挿入]→[標準モジュール]へコードを貼り付けます。
- 3
確認を検索したい言葉に変えます。Ctrl+Gでイミディエイトウィンドウを表示します。
- 4
マクロ内にカーソルを置いてF5で実行します。該当する全セルの番地とメモ内容が出力されます。