訪問して頂きありがとうございます。まさふくろーです。
この記事では、配列から指定した文字列を含む要素だけの配列を取得する方法をご紹介します。
配列から指定した文字列を含む要素だけの配列を取得する
使用する関数
Filter関数
Filter( sourcearray , match [, include] [, compare] )
説明 |
引数sourcearrayに指定した配列から、引数matchに指定した条件に一致するものを取得し、別の配列として返します。 |
指定項目 | 必須 | 説明 |
sourcearray | 〇 | 元の1次元配列を指定します。 |
match | 〇 | 検索する文字列を指定します。 |
include |
ー |
引数matchに指定した文字列を含む配列を取得する場合は「True」を、指定した文字列を除く配列を取得するには「False」を指定します。 |
省略した場合は「True」が適用されます。 | ||
compare | ー | 以下、文字列比較の種類を指定します。 |
引数「compare」に指定する定数と値
定数 | 値 | 内容 |
vbBinaryCompare |
0 |
バイナリ-モードで比較します。 |
文字の半角・全角を区別します。 | ||
vbTextCompare |
1 |
テキストモードで比較します。 |
文字の半角・全角を区別しません。 |
Split関数
【ACCESS VBA】文字列を区切って配列に変換するには?
LBound、UBound関数
【ACCESS VBA】配列の宣言の仕方と配列の要素数を取得する方法
サンプルプログラム
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
Private Sub Sample() Dim value As Variant Dim fil As Variant Dim i As Integer value = Split("株式会社ZERO, (株)SEED, (株)協和,株式会社bloom", ",") fil = Filter(value, "(株)") For i = LBound(fil) To UBound(fil) MsgBox fil(i) Next End Sub |
1 | Subプロシージャ「Sample」を作成。 |
3、4 |
配列用変数「value」「fil」を宣言。 |
7 | 文字列「株式会社ZERO, (株)SEED, (株)協和,株式会社bloom」を区切り文字「,」で分割し、配列変数「value」に代入します。 |
9 | 配列変数「value」のうち、文字列「(株)」を含む配列のみを取得し、配列変数「fil」に代入します。 |
11 | 配列変数「fil」の要素の数だけ、以下処理を繰り返します。 |
13 | 配列変数の値を、メッセージボックスに表示します。 |
実行結果
関連記事
最後まで読んでいただき、ありがとうございました!
本のまとめ関連記事はこちら