■構文
Filter(sourcesrray, match[, include[, compare]])
■説明
検索対象(配列)と検索文字列を指定することでマッチした配列要素を配列に格納して返します。
マッチしなかった場合空の配列を返します。
第一引数:検索対象の配列を指定します。
第二引数:検索する文字列を指定します。
第三引数:(省略可能)検索にマッチしたデータを返すか、検索にマッチしなかったデータを返すか指定します。
True→マッチしたデータ。False→マッチしなかったデータ。省略時は、True
第四引数:(省略可能)文字列の比較モードを指定します。
■サンプルコード
■サンプルコード
Filter(sourcesrray, match[, include[, compare]])
■説明
検索対象(配列)と検索文字列を指定することでマッチした配列要素を配列に格納して返します。
マッチしなかった場合空の配列を返します。
第一引数:検索対象の配列を指定します。
第二引数:検索する文字列を指定します。
第三引数:(省略可能)検索にマッチしたデータを返すか、検索にマッチしなかったデータを返すか指定します。
True→マッチしたデータ。False→マッチしなかったデータ。省略時は、True
第四引数:(省略可能)文字列の比較モードを指定します。
| 定数 | 値 | 説明 |
| vbUseCompareOption | -1 | Option Compareステートメントの設定を仕様して比較を行います |
| vbBinaryCompare | 0 | バイナリモードの比較を行います |
| vbTextCompare | 1 | テキストモードの比較を行います |
| vbDatabaseCompare | 2 | MicrosoftAccessの場合のみ有効。データベースに格納されている設定に基づいて比較を行います |
■サンプルコード
Option Explicit
Sub SampleCode()
Dim FoodList As Variant
Dim SelectList As Variant
Dim i As Integer
'カテゴリ(果物or野菜or飲料)と食べ物がCSVでセットになった
'データが格納されている配列があったとします。
FoodList = Array("果物,りんご", "野菜,だいこん", "飲料,お茶", _
"果物,みかん", "野菜,ぴーまん", "飲料,お酒")
'■果物だけ抽出してみる
SelectList = Filter(FoodList, "果物")
'結果を表示
For i = 0 To UBound(SelectList)
'果物,りんご
'果物,みかん が表示される
Debug.Print SelectList(i)
Next
Debug.Print "---"
'■野菜だけ抽出してみる
SelectList = Filter(FoodList, "野菜")
'結果を表示
For i = 0 To UBound(SelectList)
'野菜,だいこん
'野菜,ぴーまん が表示される
Debug.Print SelectList(i)
Next
Debug.Print "---"
'■飲料以外を抽出してみる(第三引数をFalse)
SelectList = Filter(FoodList, "飲料", False)
'結果を表示
For i = 0 To UBound(SelectList)
'果物,りんご
'野菜,だいこん
'果物,みかん
'野菜,ぴーまん が表示される
Debug.Print SelectList(i)
Next
'■マッチしない文字列の場合
SelectList = Filter(FoodList, "定食")
Debug.Print UBound(SelectList) '-1
End Sub
■サンプルコード
Option Explicit
Sub SampleCode2()
Dim DataList As Variant
Dim SelectList As Variant
Dim i As Integer
DataList = Array("aa", "aaa", "AA", "AAA")
SelectList = Filter(DataList, "aa", True, vbBinaryCompare)
For i = 0 To UBound(SelectList)
'aa
'aaa が表示される
Debug.Print SelectList(i)
Next
Debug.Print "---"
SelectList = Filter(DataList, "aa", True, vbTextCompare)
For i = 0 To UBound(SelectList)
'aa
'aaa
'AA
'AAA が表示される
Debug.Print SelectList(i)
Next
End Sub
0 件のコメント:
コメントを投稿