Join【ジョイン】関数
配列に格納されている各要素を結合するには、Join【ジョイン】関数を使用します。
Join【ジョイン】関数の書式と引数の説明
[]内は省略可能です。
Join(SourceArray[,Delimiter])
【戻り値】文字列型(String)
- SourceArray【ソースアレイ】(必須)
結合する文字列を含む1次元配列を指定します。文字列型(String)または、バリアント型(Variant)以外の配列変数を指定するとエラーになります。Source【ソース】は「元」という意味がありArray【アレイ】は「整列する」という意味があります。 - Delimiter【デリミタ】(省略可)
要素を結合する区切り文字を指定します。省略した場合は、半角スペースで結合されます。「長さ0文字(“”)」を指定すると区切りなしで結合されます。Delimiter【デリミタ】は「区切記号」という意味があります。
コード例
Sub 要素結合() Dim 配列(1) As String Dim 表示 As String 配列(0) = "値1" 配列(1) = "値2" 表示 = Join(配列, ",") MsgBox 表示 End Sub
実行結果
Filter【フィルター】関数
配列から特定の文字列を含む要素を取得するには、Filter【フィルター】関数を使用します。該当要素がない場合は空の配列を返します。
Filter【フィルター】関数の書式と引数の説明
[]内は省略可能です。
Filter(SourceArray,Match[,Include,Compare])
【戻り値】文字列型(String)
- SourceArray【ソースアレイ】(必須)
検索先の1次元配列を指定します。1次元配列でない場合はエラーになります。 - Match【マッチ】(必須)
検索する文字列を指定します。Match【マッチ】は「同等のもの」という意味があります。 - Include【インクルードゥ】(省略可)
引数Matchに指定した文字列を含む要素を返す場合は「True」含まない要素を返す場合は「False」を返します。省略した場合は「True」が指定されます。Include【インクルードゥ】は「含む」という意味があります。 - Compare【コンペア】(省略可)
文字列を検索するときの比較モードをVbCompareMethod列挙型の定数で指定します。省略した場合はvbBinaryCompareが指定されます。Compare【コンペアは「比較する」という意味があります。
A列の都道府県名から「県」を含む文字列を取得するコードと解説
Sub 要素結合() Dim 配列() As String Dim 結果配列() As String Dim i As Integer Dim 最終行 As Integer 最終行 = Cells(Rows.Count, 1).End(xlUp).Row - 1 ReDim 配列(最終行) For i = 0 To 最終行 配列(i) = Cells(i + 1, 1) Next i 結果配列 = Filter(配列, "県") MsgBox Join(結果配列, ":") End Sub
セルのデータを格納する動的配列変数「配列()」を文字列型(String)で宣言します。
3行目【Dim 結果配列() As String】
動的配列変数「配列()」にFilter【フィルター】関数で取得した「県」が含まれる要素を格納する動的配列変数「結果配列」を文字列型(String)で宣言します。
4行目【Dim i As Integer】
繰り返し処理で使用されるセルの行番号と動的配列「配列」のインデクス番号を兼ねるカウンター変数「i」を整数型(
Integer)で宣言します。
5行目【Dim 最終行 As Integer】
セルのデータが含まれる最終行数を格納する変数「最終行」を整数型(Integer)で宣言します。
6行目【最終行 = Cells(Rows.Count, 1).End(xlUp).Row – 1】
変数「最終行」にセルのデータ最終行数-1の行番号を代入します。1減算する理由は、動的配列変数「配列」のインデクス番号として使用するため、配列のインデクス番号は0からはじまることが理由です。
7行目【ReDim 配列(最終行)】
ReDim【リデム】ステートメントを使用して動的配列変数「配列」のインデクス番号の上限値を変数「最終行」に設定します。
8行目【For i = 0 To 最終行】
For Next【フォーネクスト】ステートメントで繰り返し処理の始まりです。カウンタ―変数「i」に0から変数「最終行」を順次
代入していきます。
9行目【配列(i) = Cells(i + 1, 1)】
動的配列変数「配列」にセルの値を順次代入しています。セルの行数を1加算している理由は配列のインデクス番号に合わせて
i変数が0からはじまることが理由です。
11行目【結果配列 = Filter(配列, “県”)】
Filter【フィルター】関数を使用して動的配列「配列」の要素から、「県」を含む文字列を取得して、動的配列「結果配列」に代入します。
12行目【MsgBox Join(結果配列, “:”)】
Join【ジョイン】関数を使用して、動的配列「結果配列」に格納されている要素を「:」コロンで結合してMsgBox【メッセージボックス】関数を使用して表示します。
実行前
実行結果
以上でJoin【ジョイン】関数とFilter【フィルター】関数についての解説を終了します。ありがとうございました。
配列 関数一覧表
配列に関連する関数の一覧表です。関数名がリンクになっていて
詳細説明ページが開きます。
関数名 | 内容 |
---|---|
Array | 配列の各要素をまとめて格納する |
LBound | 配列インデクス番号の下限値を取得する |
UBound | 配列インデクス番号の上限値を取得する |
Split | 文字列を分割して配列に格納する |
Join | 配列の要素を結合する |
Filter | 特定の要素を取得する |