トップ > 資格を活かすには > やってみよう!Excel VBAで業務改善! > 次なるイノベーション編: 第29話「AND検索を実装しよう」3/4 :森川くんが追加したコード

やってみよう!Excel VBAで業務改善! 次なるイノベーション編|第29話 「AND検索を実装しよう」

森川くんが追加したコード

    For r = MidashiRow + 1 To EndRow
        For i = LBound(KeyWrd) To UBound(KeyWrd)
            If KeyWrd(i) <> "" Then
                Select Case Range("C3").Value
                Case "1"
                    'AND検索の処理
                    If Range(Cells(r, MidashiCol), Cells(r, EndCol)) _
                        .Find(KeyWrd(i), LookAt:=xlPart) Is Nothing Then
                        Rows(r).Hidden = True
                        Exit For
                    End If
                Case "2"
                    'OR検索の処理
                End Select
            End If
        Next i
    Next r

※赤字の部分が、森川くんが追加したコードです。

「ふう~~~、こんなところか。
Forループで繰り返し処理する必要があるから、変数KeyWrdを配列変数KeyWrd(i)に変更したぞ。
Findメソッドが"Nothing"を返すとき、つまり"見つからなかったとき"は、
HiddenプロパティをTrueにして非表示にする。
そして"Exit For"で内側のループを抜け、外側のループで次のデータに処理を移す。
……逆にFindメソッドが一度も"Nothing"を返さなかったときは、
すべてのキーワードを含んでいたということだから、Hiddenプロパティは変更されず非表示にはならない……っと。いいじゃないか!」

森川くんは食い入るようにコードを見つめると、ウンと大きく頷きました。

「早速テストしてみるか。
……検索ワードは、そうだな…。
"小口"と"稟議"と"村上"のキーワードを含むのは、この"K1013"のデータだけみたいだから、
これで試してみるか…」

彼は、オプションボタンで[And検索]を選択すると、B3セルに「小口 稟議 村上」と入力し、
[検索]ボタンをクリックしました。

「いよーーーし!!やったあ!!」

彼はパチーンと手を叩くと、小さくガッツポーズを取ります。

江口さんが怪訝そうな顔で振り返ると、何か言いたそうに森川くんを見つめましたが、

「蚊でも……いや……いいっス…………」

肩をすくめると、あきらめの表情を浮かべながら仕事に戻りました。

一覧にもどる