構文
構文は以下の通りです。
Filter(配列, 条件[, 比較方法])
解説
Filter関数は、指定した条件に基づいて配列の要素をフィルタリングするためのVBA関数です。
●配列:フィルタリングする対象の配列です。
●条件:フィルタリングの条件を指定します。通常は文字列として指定します。
●比較方法(オプション):文字列の比較方法を指定します。省略するとバイナリ比較が行われますが、大文字と小文字が区別されます。"vbTextCompare"を指定すると大文字と小文字が区別されません。
使い方
Filter関数を使用する際には、次の手順に従ってください。
1.VBAのプロシージャ内で、フィルタリングしたい配列を作成します。例えば、次のように配列を宣言して値を代入します。
Dim 配列名() As データ型
配列名 = Array(要素1, 要素2, ... , 要素N)
配列名 = Array(要素1, 要素2, ... , 要素N)
2.Filter関数を使用して、フィルタリングされた配列を取得します。以下はその例です。
Dim フィルタ結果() As データ型
フィルタ結果 = Filter(配列名, 条件[, 比較方法])
フィルタ結果 = Filter(配列名, 条件[, 比較方法])
フィルタ結果には、指定した条件に一致する要素が格納されます。
プログラミング例
以下に、Filter関数の使い方を示す簡単なプログラミング例を示します。この例では、配列の要素を数値の条件でフィルタリングし、結果をメッセージボックスで表示します。
Sub FilterFunctionExample()
Dim myArray() As Integer
myArray = Array(1, 2, 3, 4, 5)
Dim filteredArray() As Integer
filteredArray = Filter(myArray, "> 3")
Dim i As Integer
For i = LBound(filteredArray) To UBound(filteredArray)
MsgBox filteredArray(i)
Next i
End Sub
Dim myArray() As Integer
myArray = Array(1, 2, 3, 4, 5)
Dim filteredArray() As Integer
filteredArray = Filter(myArray, "> 3")
Dim i As Integer
For i = LBound(filteredArray) To UBound(filteredArray)
MsgBox filteredArray(i)
Next i
End Sub
この例では、配列の要素が「4」と「5」のみであるため、メッセージボックスに以下のような表示がされます。
4
5
まとめ
Filter関数は、条件に基づいて配列の要素をフィルタリングするための便利な関数です。Filter関数を使用することで、配列の要素の絞り込みが簡単に行えます。是非活用してください。