Blog
ブログで学ぶUX

Excel VBAで配列を検索する:Filter

Excel VBA の Filter 関数を紹介します。

Filter関数の使い方

Filter 関数は、文字列の配列から指定した文字列を含む配列だけを返します。検索したいときやフィルタリングに使用します。

構文は下記のとおりです。

Filter(SourceArray, Match, Include, Compare)
  • SourceArray:抽出元の配列を指定します。配列は1次元の文字列を指定します。
  • Match:検索する文字列を指定します。
  • Include:TrueまたはFalseを書きます。Trueなら検索する文字列を含むものを、Falseなら含まないものを返します。省略可能で、省略した場合Trueで返されます。
  • Compare:比較モードを指定します。省略可能で、省略した場合vbBinaryCompare(大文字・小文字を区別する)となります。

使用例

4つの配列の中から、「県」を含む配列を検索して、存在するかどうか示します。

Sub Filter_test()

    Dim Array1() As Variant
    Dim Find As String
    Dim Result As Variant

    Array1 = Array("東京都", "北海道", "神奈川県", "京都府")

    Find = "県"

    Result = Filter(Array1, Find, True)

    If (UBound(Result) <> -1) Then
        Debug.Print Find & "を含む配列は存在します。"
    Else
        Debug.Print Find & "を含む配列は存在しません。"
    End If

End Sub

手順は以下の通りです。

  • 配列Array1に要素を格納します。
  • 検索する文字列を指定します。
  • Filter関数で配列の中を検索し、配列Resultとします。
  • UBound関数で、検索した文字列の要素数を返し、-1(存在しない)でなければ、存在する旨を書かせます。
投稿日:
カテゴリ: Web制作