一次元配列を結合(マージ)したい
二つの一次元配列をマージしたい場合、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】
コメント