Excel VBA プログラム Find関数でVLOOKUPと同様の処理を行う
VLOOKUP関数やMATCH関数を使えば、
プログラムを使わずに検索できます。
しかし、私は上記の関数を使ったことがないため、
使い方がいまいちわかりません。
VBAでプログラムを組んでしまえば、簡単に文字の検索ができる為です。
添付は、以前紹介しました文字を検索するプログラムになります。
例では、プリキュアという文字列打ち込み、検索ボタンを押すと
該当する文字列の右隣に◎がつくというプログラムです。
これをFind関数を使用するサンプルを以下に示しました。
--------------------------------------------------
Sub 検索()
Dim kensaku As Range
Set kensaku = Range("C5:C14").Find(What:=Cells(2, "D"), LookAt:=xlWhole)
Dim GYO As Integer
GYO = 5
Do Until GYO = 14
If Cells(GYO, "C") = kensaku Then
Cells(GYO, "C").Offset(0, 1) = "◎"
End If
GYO = GYO + 1
Loop
End Sub
--------------------------------------------------
LookAt:=xlPart)
・Find関数はRangeで範囲指定しなければなりません。
参照するRangeを kensaku とします。C5からC14内のセルの中から、
Cells(2,"D")に完全に一致するものをkensaku内に格納します。
・検索される文字列については5列目から順に14列目まで読み込まないといけません。
この業の変数は文字列なので変数は Integer、こちらをGYOとします。
・GYOは14行まで1ずつ足してチェックしていかなればなりませんので、
Do Until (~まで) Loop を使用します。
列が14になるまでGYOに1足すのでGYO=GYO+1
・Loop処理の間で、kensaku(検索ワード)と参照しているCells(GYO,"C")の
値が完全に一致している時、その右に1つ隣Offset(0,1)に"◎"を記入します。
部分一致を行いたい場合
LookAt:=xlWhole を LookAt:=xlPart
にかえるだけ!!
こうすると、プリキュアという文字列の"プ"でも"キュア"でも
1文字でも同じものが含まれていた場合、一致したものが◎表示されるように
なります。