Excel VBAの「Join 関数」について解説します。
Join 関数とは
Excel VBA の Join 関数は、配列の要素を指定した区切り文字で連結して一つの文字列にして返します。
一次元配列の要素を文字列に変えて処理したい時に使用できる便利な関数です。ただし、二次元配列には使えませんので注意が必要です。
Join 関数の構文や引数の設定と実際の使い方について具体的に解説していきたいと思います。
Join 関数(Visual Basic for Applications リファレンス)
構文(引数と戻り値)
Excel VBAの関数を使いこなすには、関数の構文を正しく理解しておくことが重要です。
構文
Join(sourcearray[, delimiter])
引数
引数 | 説明 |
---|---|
sourcearray | 【必須】結合する要素が含まれる配列を指定します |
delimiter | 【省略可能】各要素を区切る文字列を指定します ※ 省略時は半角スペース (” “) が使用されます |
※ Join 関数は一次元配列に対してのみ使用できます。
※ 要素が数値など文字列以外の場合は、自動的に文字列に変換されます。
戻り値
戻り値 | 説明 |
---|---|
連結後の文字列 (String) | 各要素を指定の区切り文字列で連結た文字列を返します |
解説(使用例)
Join 関数の使い方をサンプルで確認していきましょう。
Join 関数サンプル (基本的な使用例)
連結する一次元配列の要素は通常文字列ですが、数値配列の場合でも自動的に文字列に変換されて連結されます。
文字列配列と文字列以外の要素配列について、それぞれのサンプルをご覧ください。
文字列配列の連結例
'■Join関数サンプル1(文字列配列の連結例)
Sub Join_Sample01()
Dim strArr(3) As String
'▼配列要素が文字列の連結例
strArr(0) = "春"
strArr(1) = "夏"
strArr(2) = "秋"
strArr(3) = "冬"
Debug.Print Join(strArr, "") '空白文字で区切る
Debug.Print Join(strArr, ", ") 'カンマ+半角スペース
Debug.Print Join(strArr, "_") 'アンダーバー
End Sub
これを実行したイミディエイトがこちらです。
・1番目は delimiter に空白文字(“”)を指定した場合は、すべての要素が区切りなく連結されます。
・2番目は カンマ+半角スペース を指定して区切っています。
・3番目は アンダーバーで要素を連結しています。
文字列以外(数値配列)の連結例
'■Join関数サンプル2(数値配列の連結例)
Sub Join_Sample02()
Dim num(3) As Variant
'▼配列要素が数値(文字列以外)の連結例
num(0) = 1
num(1) = 2
num(2) = 3
num(3) = 4
Debug.Print Join(num) '省略した場合
Debug.Print Join(num, "") '空白文字で区切る
Debug.Print Join(num, "+") '+記号文字を指定
End Sub
これを実行したイミディエイトがこちらです。
・1番目は delimiter を省略した場合です。半角スペースで連結されることが確認できます。
配列要素のデータ型を確認
TypeName 関数を使って配列要素や戻り値のデータ型を確認してみます。
Debug.Print TypeName(num(3))
結果は、Integer が返されました。要素が数値であることが確認できます。
次に、Join 関数の戻り値も確認してみました。
Debug.Print TypeName(Join(num))
結果は、String が返されました。要素が数値であっても Join 関数の戻り値は 文字列(String)であることが確認できました。
おわりに
VBAの関数一覧はこちらからご参照ください。
VBAサンプルファイルダウンロードページのご案内
このページで使用したサンプルファイルの登録はありません(^^;
ページ内のコードをコピーしてご利用ください。
ダウンロードページへのリンクは下のカードクリックでジャンプできます。
よろしければご利用ください!
Excel VBA の Join 関数は、配列の要素を簡単に連結して一つの文字列にするための便利な関数です。
オプションで連結に利用する文字列を自由に設定することができるので、連結した文字列そのものを使うことのほか、いろいろな活用方法があります。
例えば、連結前に Filter 関数で要素を絞り込んでカンマ区切りの文字列を取得し、Split 関数で新たな配列を作成するなどです。他の関数と組み合わせて使うことで、より複雑なデータ操作を行うことができます。
以上、この解説が少しでもみなさまのお役に立てたなら幸いです(^^;