ここは素直に…
昼過ぎの会社では、順調に開発を続けていた森川くんが、机に頭を突っ伏して考え込んでいます。
心配そうに様子を見ていた岬さんが、彼の元に駆け寄ります。
「森川くん、どうしたの?何か、困ったことでもあるの?」
「岬先輩……実は…」
森川くんは岬さんに、問題箇所の説明をしました。
「すごいじゃない森川くん、もうこんなに作ったんだ。
……なるほどね、単純に連結しただけでは誤検索があるし、
区切り文字を入れたとしても、100パーセント誤検索を回避できないってことを悩んでたのね。
…まあオーグチさんは、そこまで完璧な検索結果を要求してないと思うけど…。
ここは素直に、InStrじゃなくてFindメソッドを使えばいいんじゃないかしら?」
森川くんが、キョトンとした顔で岬さんを見つめます。
岬さんは、キーボードに手を伸ばし、森川くんのコードを書き直しました。
For r = MidashiRow + 1 To EndRow
' wrk = ""
' For c = MidashiCol To EndCol
' wrk = wrk & Cells(r, c).Value
' Next c
' If InStr(wrk, KeyWrd) = 0 Then
' Rows(r).Hidden = True
' End If
If Range(Cells(r, MidashiCol), Cells(r, EndCol)) _
.Find(KeyWrd, LookAt:=xlPart) Is Nothing Then
Rows(r).Hidden = True
End If
Next r
「せっかくのVBAなんだから、使えるものは使わなきゃね!
要は、1行のデータの中に、検索ワードが"ある"か"ない"か、が分かればいいんでしょ?
だったら、Findメソッドでキーワードを検索しても、同じことじゃない」
岬さんが[検索]ボタンをクリックすると、今度は正しく検索結果が表示されました。
「…な、なるほど……さすが岬先輩。これは目からウロコっス」