VBAで配列に値を追加しようとして、ReDim Preserveの書き方で悩んだことはありませんか?
毎回同じコードを書くのは面倒ですよね。
本記事では、配列に値を動的に追加する関数を紹介します。
コピペするだけで使えるので、開発効率が大幅に向上します。
リンク
リンク
リンク
【コピペOK】配列に値を追加するadd_to_arr関数
Copyをクリックするとコピーできます。
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 = reArrEnd Functionadd_to_arr関数の使い方
第一引数のarrには値を追加したい配列を、第二引数のvalには配列に追加する値を指定することで、配列に値を動的に追加できます。
各引数について
- arr (必須)
値を追加したい配列を指定します。 - val (必須)
配列に追加する値を指定します。
【サンプルコード】VBAで配列に値を追加する実例
以下VBAコードは、元の配列myArray = Array(1, 2, 3, 4)に5を追加し、最終的に{1, 2, 3, 4, 5}になります。
Copyをクリックするとコピーできます。
VBA
Copy
Sub sample() Dim myArray As Variant myArray = Array(1, 2, 3, 4) ' 配列に値を追加 myArray = add_to_arr(myArray, 5)End SubPublic 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 = reArrEnd Functionまとめ:配列の追加は関数化で効率UP!
VBAで配列に値を動的に追加する際、ReDim Preserveを毎回書くのは手間がかかりますよね。
今回紹介したadd_to_arr関数を使えば、以下のメリットがあります。
- コードの簡潔性:1行で配列に値を追加可能
- 再利用性:他のプロジェクトでも同じ関数が使える
- 保守性:バグ修正や機能追加が1箇所で済む
この関数を活用して、VBA開発の効率を大幅に向上させてください!
リンク
リンク
リンク
