このページでわかること
大文字小文字、半角全角を区別して検索できるようになります。
コメントの内容で検索できるようになります。
覚えること
- 大文字小文字の検索:
引数MatchCaseをTrue→大文字小文字を区別する、False→区別しない - 半角全角の検索:
引数MatchByteをTrue→全角半角を区別する、False→全角半角を区別しない - コメントの検索:
引数LookInをxlComentsにする
スポンサーリンク
大文字小文字の検索
表を下記のように作りました。
A2のappleではなく、
A7のAppleを検索したい場合を考えます。

Sub findmethodMatchCase()
Dim table As ListObject
Set table = ActiveSheet.ListObjects(1)
Dim srcRng As Range '検索する範囲
Dim fndRng As Range 'findメソッドで検索したセル範囲
Set srcRng = table.Range
'検索する値はApple(appleではない)、MatchCaseをTrueにする
Set fndRng = srcRng.Find(what:="Apple", lookat:=xlWhole, MatchCase:=True)
MsgBox ("大文字は:" & fndRng.Address)
End Sub

半角全角の検索
今度は以下のように表を作りました。
A2の「リンゴ」は全角、A7の「リンゴ」は半角です。

全角ではなく、半角のリンゴを検索したいという場合のマクロを考えます。
Sub findmethodMatchByte()
Dim table As ListObject
Set table = ActiveSheet.ListObjects(1)
Dim srcRng As Range '検索する範囲
Dim fndRng As Range 'findメソッドで検索するセル範囲
Set srcRng = table.Range 'テーブル化した全範囲
'検索する値は半角のリンゴ(全角のリンゴではない)、MatchByteをTrueにする
Set fndRng = srcRng.Find(what:="リンゴ", MatchByte:=True)
MsgBox ("半角のリンゴは:" & fndRng.Address)
End Sub
結果は半角の方のリンゴのセル位置を取得できました。

コメントの検索
次はコメントを検索する方法です。
以下のようにコメントが入っている表を作りました。

A2のコメントではなく、A7のコメントを検索したいと思います。
Sub findmethodComments()
Dim table As ListObject
Set table = ActiveSheet.ListObjects(1)
Dim srcRng As Range '検索する範囲
Dim fndRng As Range 'findメソッドで検索するセル範囲
Set srcRng = table.Range 'テーブル化した全範囲
'コメント「コメントだよ」を検索、LookInをxlCommentsに
Set fndRng = srcRng.Find(what:="コメントだよ", LookIn:=xlComments)
MsgBox ("「コメントだよ」のコメントを入れたセルは:" & fndRng.Address)
End Sub

注意する点
Findメソッドの引数のうち、
LookIn、LookAt、SearchOrder、MatchByteは設定が保存されるので、
次に使う場合は注意してください。
以下のコードを最後に入れておくと、
設定を初期化できます。
もし不具合あるようでしたら試してみてください。
Set fndRng = Range("A1").Find(what:="リンゴ", LookIn:=xlValues, lookat:=xlPart, SearchOrder:=xlByColumns, MatchByte:=False)
ちょっとマニアックな内容でしたが、
もしかしたら日々の業務で知っていると
業務が短縮できるアイデアにつながるかもしれないです。
例えば半角全角が混じっちゃったデータベースで置換はしたくないけど位置は記録とりたいとか
コメントに入力者の名前を入れるルールにしておいて、誰それさんはどこのセルに入力したとか
アイデア次第で役に立つケースもあると思います。
大事なのは知っておくことだと思います。
ではでは
スポンサーリンク