【VBA】配列から特定の要素を抽出する方法(Filter関数)
今回は配列から特定の要素を抽出する方法を紹介します。
この方法を使うと例えば、
array(“apple", “orange", “melon", “grape")のような配列から
oを含んだ配列 array(“orange", “melon")を抽出することができます。
配列から特定の要素を抽出する方法(特定の文字列を含む)
Sub FilterInclude()
Dim arr
arr = Array("A株式会社", "B有限会社", "C株式会社", "D合同会社", "E合資会社", "F株式会社")
arr = Filter(arr, "株式会社")
'フィルタ後の配列を確認
Dim one
For Each one In arr
Debug.Print one 'A株式会社,C株式会社,F株式会社
Next
End Sub
サンプルコードでは配列arrから"株式会社"を含む要素を取り出しています。
元の配列にはA~Fの会社があるのですが、フィルタ後の配列には"株式会社"であるA,C,Fのみが含まれています。
配列から特定の要素を抽出する方法(特定の文字列を含まない)
Sub FilterNotInclude()
Dim arr
arr = Array("A株式会社", "B有限会社", "C株式会社", "D合同会社", "E合資会社", "F株式会社")
arr = Filter(arr, "株式会社", False)
'フィルタ後の配列を確認
Dim one
For Each one In arr
Debug.Print one 'B有限会社,D合同会社,E合資会社
Next
End Sub
こちらのコードでは"株式会社"を含まない要素を取り出しています。
arr = Filter(arr, "株式会社", False)
このようにFilter関数の3つ目の引数にFalseを指定すると指定した文字列を含まない配列のみを取得することができます。