VBA find文まとめ
〜背景〜VBAを使って文字列を検索することができますが、明確な記述のあるところが少ないので、その内容をまとめた記事です。〜定義編〜Dim 変数1 as Range↑のオブジェクトが必要です。(当然なのかもしれないですが、あんまり書いてない)繰り返しで検索する場合は、もう1つ同じRangeオブジェクトがある方が裁きやすいです。指定範囲の1番上しか持ってこれないためです。〜処理編〜Set 変数1 =worksheets("ワークシート名").range(セルの範囲※1).find(what:="検索したいもの",lookat:=xlwhole)'※2If 変数1 is Nothing then"変数1がなかったときの処理"else変数1.select'変数1があるときの処理、見つけたいセルを選択。End if以下は細かいところです。※1セルの範囲を指定するときもワークシート名を入力するときと同様にきちんと指定することが大切です。(指定せずに予期せぬ動作をしたことが多々あります。)検索をかけるworksheet名でwith〜Endwithで括って省略表記することを勧めます。括ったときはセル範囲を以下のように書けます。.range(.cells(1,1),.cells(100,1))行指定: .range(.rows(1),.rows(1))列指定: .range(.columns(1),.columns(1))※2lookat:=xlwhole(文字列完全一致を検索)lookin:=xlvalue(文字列部分一致を検索)lookinでの処理は謎が多いので、完全一致での使用をオススメします。製品番号を調べるマクロを組んだときにlookinできちんと検索してくれない事象がありました。何かの助けになれば幸いです