業務でよく使用するため、VBAで配列に値を動的に追加する方法をメモしておきます。
【実装コード】VBAで配列に値を動的に追加する関数
VBA
Copy
Public Function add_to_arr(ByVal arr As Variant, ByVal val As Variant) As Variant
'配列に値を追加
Dim reArr As Variant
If IsArray(arr) Then
' 配列が存在する場合、既存の配列を拡張して値を追加
reArr = arr
ReDim Preserve reArr(UBound(reArr) + 1)
reArr(UBound(reArr)) = val
Else
' 配列が存在しない場合、新しい配列を作成し、値を追加
ReDim reArr(0)
reArr(0) = val
End If
add_to_arr = reArr
End Function
add_to_arr()関数の使用方法
第一引数のarr
に値を追加したい配列を指定、第二引数のval
に配列に追加する値を指定することで、配列に値を動的に追加することができます。
各引数について
- arr (必須)
値を追加したい配列を指定します。 - val (必須)
配列に追加する値を指定します。
add_to_arr()関数の使用例
以下では、変数myArray(配列)に値(5)を追加しています。
VBA
Copy
Sub sample()
Dim myArray As Variant
myArray = Array(1, 2, 3, 4)
' 配列に値を追加
myArray = add_to_arr(myArray, 5)
End Sub
Public Function add_to_arr(ByVal arr As Variant, ByVal val As Variant) As Variant
'配列に値を追加
Dim reArr As Variant
If IsArray(arr) Then
' 配列が存在する場合、既存の配列を拡張して値を追加
reArr = arr
ReDim Preserve reArr(UBound(reArr) + 1)
reArr(UBound(reArr)) = val
Else
' 配列が存在しない場合、新しい配列を作成し、値を追加
ReDim reArr(0)
reArr(0) = val
End If
add_to_arr = reArr
End Function
Excel VBAで初心者を卒業したいという方におすすめの1冊
リンク
もみじ
入門書レベルの内容を理解できる方におすすめの1冊で、実務で必要なスキルを学ぶことができます。
具体的には、コーディングの作法や効率的なコーディング方法、CSVやWeb上のデータとの連携方法、そしてマクロの高速化などの実務で役立つスキルを学ぶことができます。