プログラミング

【PR】

【VBA】配列に値を動的に追加する方法

VBAで配列に値を動的に追加する方法

業務でよく使用するため、VBAで配列に値を動的に追加する方法をメモしておきます。

【実装コード】VBAで配列に値を動的に追加する関数

VBA
Copy
  1. Public Function add_to_arr(ByVal arr As Variant, ByVal val As Variant) As Variant
  2.     '配列に値を追加
  3.     Dim reArr As Variant
  4.  
  5.     If IsArray(arr) Then
  6.         ' 配列が存在する場合、既存の配列を拡張して値を追加
  7.         reArr = arr
  8.         ReDim Preserve reArr(UBound(reArr) + 1)
  9.         reArr(UBound(reArr)) = val
  10.     Else
  11.         ' 配列が存在しない場合、新しい配列を作成し、値を追加
  12.         ReDim reArr(0)
  13.         reArr(0) = val
  14.     End If
  15.     
  16.     add_to_arr = reArr
  17. End Function

add_to_arr()関数の使用方法

第一引数のarrに値を追加したい配列を指定、第二引数のvalに配列に追加する値を指定することで、配列に値を動的に追加することができます。

各引数について

  1. arr (必須)
    値を追加したい配列を指定します。
  2. val (必須)
    配列に追加する値を指定します。

add_to_arr()関数の使用例

以下では、変数myArray(配列)に値(5)を追加しています。

VBA
Copy
  1. Sub sample()
  2.     Dim myArray As Variant
  3.     myArray = Array(1, 2, 3, 4)
  4.  
  5.     ' 配列に値を追加
  6.     myArray = add_to_arr(myArray, 5)
  7. End Sub
  8.  
  9. Public Function add_to_arr(ByVal arr As Variant, ByVal val As Variant) As Variant
  10.     '配列に値を追加
  11.     Dim reArr As Variant
  12.  
  13.     If IsArray(arr) Then
  14.         ' 配列が存在する場合、既存の配列を拡張して値を追加
  15.         reArr = arr
  16.         ReDim Preserve reArr(UBound(reArr) + 1)
  17.         reArr(UBound(reArr)) = val
  18.     Else
  19.         ' 配列が存在しない場合、新しい配列を作成し、値を追加
  20.         ReDim reArr(0)
  21.         reArr(0) = val
  22.     End If
  23.     
  24.     add_to_arr = reArr
  25. End Function

Excel VBAで初心者を卒業したいという方におすすめの1冊

アイコン画像

もみじ

入門書レベルの内容を理解できる方におすすめの1冊で、実務で必要なスキルを学ぶことができます。

具体的には、コーディングの作法や効率的なコーディング方法、CSVやWeb上のデータとの連携方法、そしてマクロの高速化などの実務で役立つスキルを学ぶことができます。

-プログラミング
-, ,