配列操作

2個の一次元配列を結合(マージ)する【Join/Split】【ExcelVBA】

一次元配列を結合(マージ)したい

二つの一次元配列をマージしたい場合、VBAでは配列を結合する関数は用意されていません
Join関数Split関数を使い、ロジックを組みます。

一次元配列を結合(マージ)するサンプルコード

’■二個の一次元配列を結合する(マージする)
Public Sub sample_array_merge_join_split()

    Dim arr1 As Variant
    Dim arr2 As Variant
    Dim mergeArr As Variant
    
    '■配列を生成
    arr1 = Array(1, 2, 3)
    arr2 = Array(4, 5, 6)
    
    '■Joinで文字を結合した上、SplitでmergeArrに配列として格納
    mergeArr = Split(Join(arr1, vbCrLf) & vbCrLf & Join(arr2, vbCrLf), vbCrLf)
    
    '■結合された結果
    Debug.Print mergeArr(0) '1
    Debug.Print mergeArr(1) '2
    Debug.Print mergeArr(2) '3
    Debug.Print mergeArr(3) '4
    Debug.Print mergeArr(4) '5
    Debug.Print mergeArr(5) '6

End Sub

その他

  • 本記事で結合可能なのは一次元配列のみです。二次元配列は別の方法で処理する必要があります。
  • vbCrLfで文字をJoinして、vbCrlfを区切り文字に配列にSplitしています。
    =配列内にvbCrlfは格納できません。(上記サンプルの場合)
  • マージする配列は静的配列、動的配列どちらでもマージ可能です。

関連記事

配列の要素を結合する【Join関数】【ExcelVBA】
文字列を分割して配列に値を格納する【Split関数】
指定した要素で配列を作成【Array関数】【ExcelVBA】

コメント

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