【VBA】配列内の数値を合計する方法
今回は配列内の数値を合計する方法を紹介します。
配列内の数値を合計する方法は主に2つがあります。
- For文で1つずつ足し合わせる方法
- Excel関数のSum関数を使う方法
For文を使うとコードが数行必要で読みづらいため、Sum関数を使う方法がおすすめです。
今回はSum関数を使って合計する方法と、知っておきたいポイント2つを紹介します。
配列内の数値を合計する方法 (Sum関数)
Sub GetSum1()
'Excel関数のSum関数を使う方法
Dim arr
arr = Array(1, 2, 3, 4, 5)
Debug.Print WorksheetFunction.Sum(arr) '15
End Sub
Excel関数(WorksheetFunction)のSum関数は引数に配列を指定すると、配列の値をすべて合計してくれます。
コードも一行で済むため、とてもスッキリとした見た目になります。
Sum関数のポイント1: 複数の配列を合計できる
Sub GetSum2()
'複数の配列を合計
Dim arr1, arr2
arr1 = Array(1, 2, 3, 4, 5)
arr2 = Array(1, 2, 3, 4, 5)
Debug.Print WorksheetFunction.Sum(arr1, arr2) '30(15+15)
End Sub
Sum関数は複数の配列を合計することもできます。
サンプルコードのようにSum(arr1,arr2)とすると各配列を合計した値を取得できます。
Sum関数のポイント2: 配列内の文字列は無視される
Sub GetSum3()
'文字列を含む配列を合計
Dim arr
arr = Array(1, 2, 3, 4, 5, "a") '文字列"a"を含む
Debug.Print WorksheetFunction.Sum(arr) '15
End Sub
Sum関数を使うと配列内に文字列が含まれていても問題ありません。
文字列を無視した値の合計値を取得できます。
この辺りはシート上でSum関数を使ったときの挙動と同じですね。
For文の足し算だとエラーになってしまうので、これもまたSum関数を使うメリットです。