今回は、セル内容の一部検索を、Find と * アスタリスクを使って、セルを特定でき、行や列、アドレスの取得も1行でシンプルにできる方法を学びました。
すぐに思い出せるように、わたくしのVBA備忘録として残しております。
Findと*アスタリスクでセルを特定できる
Sub mojiken()
msgbox Range(“A1:Q10”).Find(“*北*”).Address
End Sub
↑こちらのプロシージャですが、
A1:Q10の範囲内に、北を含む文字列のあるセルのアドレスを返してくれるのですが、
.Address 部分を .Row や .Column などに変更しても使えまして、変数に入れて大活躍してくれるマクロでした!
↓Range(“A1:Q10”) を Selection に変えて、選択した範囲内を検索
Sub mojiken()
MsgBox Selection.Find(“*北*”).Address
End Sub
完全一致のセルを検索
↓ アスタリスクを取って、”北” と指定するだけで完全一致検索ができる。
Sub mojiken()
MsgBox Range(“A1:Q10”).Find(“北”).Address
End Sub
選択した範囲から完全一致のセルを検索
↓選択した範囲内で完全一致を検索
Sub mojiken()
MsgBox Selection.Find(“北”).Address
End Sub
シート内の全セルを検索
↓Selection を Cells に変えて、このシート全体のセルから北のみのセルを検索
Sub mojiken()
MsgBox Cells.Find(“北”).Address
End Sub
もちろんネット検索しての、いろんな方のサイトで勉強させて頂いた結果、学んだものなのですが、すごいなーと思いましたのが、アスタリスクを合わせると、もうこの1文だけで使い回しがラクラクできます♪
先人の知恵に感謝ですm(_ _)m
変数に入れてみる
↓セルの番地を変数 i に入れて、その位置をアクティブにする。
Sub mojiken()
Dim i As String
i = Range(“A1:Q10”).Find(“*北*”).Address
Range(i).Select
End Sub
↑セルのアドレスなので、String または Variant で型を指定します。
↓行と列を変数に入れる。
Sub mojiken()
Dim i As Long
Dim t As Long
i = Range(“A1:Q10”).Find(“*北*”).Row
t = Range(“A1:Q10”).Find(“*北*”).Column
Cells(i, t).Select
End Sub
↑Rowは行番号なので型はLongで、列番号はColumnで同様にLongで指定します。
効率よく文字検索できるようになりましたね♪
先人の知恵に感謝m(_ _)m
↓この本は、kindle読み放題でも読めるので活用させて頂いております。
コメント