Filter 関数
指定されたフィルタ条件に基づいた文字列配列のサブセットを含むゼロ ベースの配列を返します。
Filter(InputStrings, Value[, Include[, Compare]])
引数
- InputStrings
必ず指定します。検索先の 1 次元配列の文字列を指定します。 - Value
必ず指定します。検索する文字列を指定します。 - Include
省略可能です。引数 InputStrings に指定した配列の各要素の文字列の中に、引数 Value が含まれるかどうかを表すブール値を指定します。引数 Include が真 (True) の場合、Filter 関数は、配列の各要素の文字列の中で、引数 Value が含まれる配列のサブセットを返します。引数 Include が偽 (False) の場合、Filter 関数は、配列の各要素の文字列の中で、引数 Value が含まれない配列のサブセットを返します。 - Compare
省略可能です。文字列式を評価するときに使用する文字列比較のモードを表す数値を指定します。設定する値については、次の「設定値」を参照してください。
設定値
引数 Compare の設定値は次のとおりです。
定数 | 値 | 内容 |
---|---|---|
vbBinaryCompare | 0 | バイナリ モードで比較を行います。 |
vbTextCompare | 1 | テキスト モードで比較を行います。 |
解説
引数 InputStrings 内で引数 Value に一致する文字列がなかった場合は、Filter 関数は空の配列を返します。引数 InputStrings が Null 値であるか、1 次元配列でない場合は、エラーになります。
Filter 関数が返す配列は、一致した項目数分だけの要素が含まれています。
次のコードは、Filter 関数を使って "Mon" を含む配列を返す例です。
Dim MyIndex
Dim MyArray (3)
MyArray(0) = "Sunday"
MyArray(1) = "Monday"
MyArray(2) = "Tuesday"
MyIndex = Filter(MyArray, "Mon") ' MyIndex(0) contains "Monday".