2個の一次元配列を二次元配列に変換したい
二つの一次元配列を結合して二次元配列を作りたい場合、VBAでは配列を結合する関数は用意されていません。
自作でロジックを組みます。
2個の一次元配列を二次元配列に変換するサンプルコード
'■一次元配列を2つ繋げて二次元配列に変換するモジュール Public Function Call_Array_MergeTo2D(arr1 As Variant, arr2 As Variant) As Variant Dim buf() As String: ReDim buf(UBound(arr1), LBound(arr1) + 1) Dim i As Long, j As Long For i = LBound(arr1) To UBound(arr1) buf(i, LBound(arr1) + 0) = arr1(i) buf(i, LBound(arr1) + 1) = arr2(i) Next i Call_Array_MergeTo2D = buf End Function
使い方
上記をお好きなモジュール内にコピペしてください。
実際に使用する時は以下のような形で使用してください。
Public Sub sample() Dim tmp1 As Variant: tmp1 = Array(1, 2, 3, 4, 5) Dim tmp2 As Variant: tmp2 = Array("あ", "い", "う", "え", "お") Dim arr As Variant arr = Call_Array_MergeTo2D(tmp1, tmp2) Debug.Print arr(0, 0) ' 1 Debug.Print arr(0, 1) ' あ End Sub
その他
- 本記事で結合可能なのは一次元配列のみです。二次元配列は別の方法で処理する必要があります。
- マージする配列は静的配列、動的配列どちらでもマージ可能ですが、列数は同一の必要があります。
コメント