ExcelVBA

配列の要素を結合する【Join関数】【ExcelVBA】

VBAで高速処理に欠かせない配列処理

ExcelVBAマクロは動作が遅いと言われがちです。それは大きな間違いです。
大体そういう方は、大量のデータをワークシート内のセルで、検索代入計算しており
その処理方法が間違いです。

一次元配列もしくは二次元配列にデータを格納してから処理をすることで、
速度の改善が見込めます。

ただ、配列処理となると厄介だから勉強していない!という初心者の方も多いでしょう。

単純に、ワークシート内のセル範囲配列同様と考えると簡単かもしれません。

Join関数を使用して配列の要素を結合する

'■Join関数を使用し、配列をまとめる
Sub sample_Array_Join()
    Dim arr(3) As String
    
    '■変数を格納
    arr(0) = "Windows"
    arr(1) = "iOS"
    arr(2) = "Android"
    arr(3) = "Linux"
    
    '■配列の値をまとめて表示する
    MsgBox Join(arr, vbCrLf)
    '■vbCrLfの表示イメージ
    'Windows
    'iOS
    'Android
    'Linux
    
    '■配列の値をまとめて表示する
    MsgBox Join(arr, "")
    '""の表示イメージ
    'WindowsiOSAndroidLinux
    
    '■配列の値をまとめて表示する
    MsgBox Join(arr)
    '引数省略した場合の表示イメージ
    'Windows iOS Android Linux
    
End Sub

その他

  • 引数省略した場合は、半角スペースで区切られて表示します。
  • 半角スペースも不要な場合は“”(空文字列)を入力すれば、区切り文字なしで表示します。
  • 「実行時エラー13 型が一致しません」エラーが表示された場合は一次元配列ではなく、
    二次元配列の可能性が高いです。(下記、関連記事を参照してください)

関連記事

二次元配列ではJoin関数は使えません。Join関数を使用したい場合は、
2次元配列を1次元配列に変換(抽出)しましょう。

2次元配列の特定の列or行を 1次元配列に変換する【ExcelVBA】

コメント

タイトルとURLをコピーしました