Excel VBA の Filter 関数を紹介します。
Filter関数の使い方
Filter 関数は、文字列の配列から指定した文字列を含む配列だけを返します。検索したいときやフィルタリングに使用します。
構文は下記のとおりです。
1 |
Filter(SourceArray, Match, Include, Compare) |
- SourceArray:抽出元の配列を指定します。配列は1次元の文字列を指定します。
- Match:検索する文字列を指定します。
- Include:TrueまたはFalseを書きます。Trueなら検索する文字列を含むものを、Falseなら含まないものを返します。省略可能で、省略した場合Trueで返されます。
- Compare:比較モードを指定します。省略可能で、省略した場合vbBinaryCompare(大文字・小文字を区別する)となります。
使用例
4つの配列の中から、「県」を含む配列を検索して、存在するかどうか示します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
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(存在しない)でなければ、存在する旨を書かせます。