2つの配列を結合して1つの配列にする。
2つの配列を結合して1つの配列にします。
VBAに標準実装されている関数では複数の配列を1つに結合する関数がないので配列を結合するための関数を独自に作成する必要があります。
サンプルコードでは最初に2つの配列データを作成し、その配列データをmergeArrDat関数に渡して配列を結合させ、1つになった配列を戻り値として返しています。
動作確認
Windows10/Excel2016:○
Windows11/Excel2024:○
'******************************************************************
' 配列の結合
'******************************************************************
Sub Main_MergeArray()
'配列データの作成
Dim vAry1() As Variant
vAry1 = Array("北海道", "******")
Dim vAry2() As Variant
vAry2 = Array("青森", "岩手", "宮城", "秋田", "山形", "福島")
'配列の結合
Dim vRtnAry As Variant
vRtnAry = mergeArray(vAry1, vAry2)
'配列の要素を表示
Dim i As Long
For i = 0 To UBound(vRtnAry)
Debug.Print vRtnAry(i)
Next
End Sub
'******************************************************************
' 引数で取得した2つの配列を結合
'------------------------------------------------------------------
' 第1引数:結合させる配列1
' 第2引数:結合させる配列2
'------------------------------------------------------------------
' 戻り値 :結合した配列
'******************************************************************
Function mergeArray(getAry1 As Variant, getAry2 As Variant) As Variant
'結合用配列
Dim vTempArray() As Variant
Dim lAryCnt As Long
Dim i As Long
'第1引数の配列データを結合用配列に設定する
For i = LBound(getAry1) To UBound(getAry1)
ReDim Preserve vTempArray(lAryCnt)
vTempArray(lAryCnt) = getAry1(i)
lAryCnt = lAryCnt + 1
Next
'第2引数の配列データを結合用配列に追加する
For i = LBound(getAry2) To UBound(getAry2)
ReDim Preserve vTempArray(lAryCnt)
vTempArray(lAryCnt) = getAry2(i)
lAryCnt = lAryCnt + 1
Next
mergeArray = vTempArray
End Function■実行結果



