EXCEL VBA セルの検索(完全一致・部分一致・複数一致)「Find・FindNextメゾット」の使い方

 

EXCEL VBA セルの検索(完全一致・部分一致・複数一致)「Find・FindNextメゾット」の使い方

 

 

 ●はじめに
EXCELで作成したデータから該当する文字列などを検索する時に、便利な機能としてFindメゾットがあります。Findメゾットの引数は、(What,After,LookIn,LookAt,SearchOrder,
SearchDirection,MatchCase,MatchByte,SearchFormat)全部で9種類(下記参照)の引数が用意されており、Findメゾットを利用すれは、複雑な条件設定や完全一致・部分一致・複数一致など、様々な検索方法を扱う事が出来ます。それでは、Findメゾットの利用方法を順番に説明いたします。

 

 

 ●書式の説明 (Findメゾット)
Set オフジェクト変数 = セル範囲.Find(What,After,LookIn,LookAt,SearchOrder,
SearchDirection,MatchCase,MatchByte,SearchFormat)

 

引数定数説明
What検索する文字列を指定します。ワイルドカードも可能です。
After検索を開始するセルを指定します。指定しない場合は、セル範囲してした一番左うえから検索を開始します。
LookInxlVaues(値)
xlFormulas(数式)
xlComments(コメント)
セルの値のみを検索するか、数式や関数の文字を検索するかを指定します。
LookAtxlWhole(完全一致)
xlPart(部分一致)
検索値に対して、完全一致又は、部分一致を指定します。
SearchOrderxlByRows(行方向)
xlByColumns(列方向)
行方向又は、列方向どちらを優先的に検索するかを指定します。
SearchDirectionxlNext(前方向)
xlPrevious(後方向)
検索する方向を指定します。
MatchCaseTrue(区別する)
False(区別しない)
大文字と小文字を区別するかを指定します。
MatchByteTrue(区別する)
False(区別しない)
文字の全角と半角を区別するか指定します。
SearchFormatTrue(オン)
False(オフ)
書式検索をオンにするかを指定します。

 

 

 

検索条件:部分一致「指定した文字列を検索」(Findメゾット)

 

 

 ●プログラム説明 (サンプルプログラム①)
(画面クリックして拡大)

下記のプログラムは、下表のデータからFindメゾットを使ってD列「住所」の中から検索文字として「東京」に部分一致する行番号を返すプログラムです。

 

 

 

 

 ●実行前~実行後 ※プログラム実行後、検索文字として「東京」(部分一致)を指定してD列「住所」を検索しましたので、該当する「東京」の文字列が含まれている行番号が表示されました。
(画面クリックして拡大)

 

 

 

検索条件:完全一致「指定した文字列を検索」(Findメゾット)

 

 

 ●プログラム説明 (サンプルプログラム②)
(画面クリックして拡大)
下記のプログラムは、下表のデータからFindメゾットを使ってB列「名前」の中から指定する検索文字を入力して、入力文字と完全一致したB列「名前」の背景色を塗りつぶすプログラムです。

 

 

 

 

 ●実行前~実行後 ※プログラム実行後、今回は、完全一致で検索しますので、メッセージボックスが表示されるので正確に「東 梨華」を入力します。B列の「名前」から完全一致する入力した検索文字を検索します。完全一致する名前が検索されたら該当のセルの背景色が塗りつぶされます。
(画面クリックして拡大)

 

 

 

検索条件:複数一致・複数条件「指定した文字列を検索」(Findメゾット)

 

 

●プログラム説明 (サンプルプログラム③)
(画面クリックして拡大)
下記のプログラムは、下表のデータからFindメゾットを使って「名前」と「住所」の中から指定する検索文字を入力して、入力文字と部分一致したB列「名前」とD列「住所」の背景色を塗りつぶし、検索結果「G列」に検索件数を記述するサンプルプログラムです。

 

 

 

●実行前~実行後 ※プログラム実行後、今回のプログラムは、名前と住所(都道府県名)の複数条件に対応するプログラムです。入力画面で「名前」は、「田」を指定・「都道府県名」は、「大阪」を指定します。部分一致で検索しますので、「名前」に「田」が含まれているものと「都道府県名(住所)」に「大阪」が含まれているデータに対して、該当するセルの背景色が塗りつぶしされて、該当する件数をカウントして、「検索結果」としてG列に件数を表示します。
(画面クリックして拡大)

 

 

検索条件:複数一致「指定した文字列を検索」(FindNextメゾット)

 

 

●プログラム説明 (サンプルプログラム④)
(画面クリックして拡大)

下記のプログラムは、下表のデータからFindNextメゾットを使って「血液型」の中から指定する血液型を入力して、入力文字「A」と完全一致したE列「血液型」の背景色を塗りつぶすサンプルプログラムです。今回は、FindNextを使って連続的に検索をする仕組みになっています。

 

 

 

 

●実行前~実行後 ※プログラム実行後、血液型を入力(A)を入力して、E列(血液型)に該当するセルの背景色が塗りつぶされました。
(画面クリックして拡大)

 

 

最後まで、ご覧いただきまして誠に有難うございました。
また、VBAに関するテクニックや便利な手法などをこのサイトに掲載していきますので、定期的に参照していただけると幸いです。