トップ > 資格を活かすには > やってみよう!Excel VBAで業務改善! > 次なるイノベーション編: 第28話「安全なプログラムとは」2/4 :不正な値は除外しよう

やってみよう!Excel VBAで業務改善! 次なるイノベーション編|第28話 「安全なプログラムとは」

不正な値は除外しよう


Sub 検索()
    Dim i As Long, r As Long, c As Long
    Dim EndRow As Long, EndCol As Long
    Dim KeyWrd As Variant
    
    Const MidashiRow As Long = 5
    Const MidashiCol As Long = 1
    
    If Range("B3").Value <> "" Then
        Rows.Hidden = False
        EndRow = Cells(Rows.Count, MidashiCol).End(xlUp).Row
        EndCol = Cells(MidashiRow, Columns.Count).End(xlToLeft).Column
        KeyWrd = Split(Range("B3").Value, " ", , vbTextCompare)
                
        For r = MidashiRow + 1 To EndRow
            For i = LBound(KeyWrd) To UBound(KeyWrd)
                Select Case Range("C3").Value
                Case "1"
                    'AND検索の処理
                Case "2"
                    'OR検索の処理
                End Select
            Next i
        Next r
    End If
End Sub

※赤字の部分が、今回修正したコードです。

岬さんはカタカタとキーボードを叩き、コードを追加しました。

「こんな感じでどう?」

「なるほど。
B3セルに値があるときだけ、検索処理を実行するんですね」

「検索ワードのように、ユーザーが何を入力するか予測がつかないときは、
わかる範囲の不正な値は、できるだけ除外しておくべきよ。
それに今、もう1つ気がついたんだけど……」

岬さんが不敵な笑みを浮かべて、森川くんに顔を近づけます。
森川くんは、ゴクリと喉を鳴らしました。

一覧にもどる