Home » エクセルマクロ・Excel VBAの使い方 » 配列 » Excel VBAで配列の合計を求める

Excel VBAで配列の合計を求める

動作検証バージョン:64bit Windows 10 Pro + 32bit Excelバージョン2103 ビルド13901.20400 Microsoft Store)

「Excel VBA 配列 合計」
という検索キーワードでアクセスがありました。

Excel VBAで、配列変数の要素に代入されている数値の合計を求めるには、どのようなコードを書けばいいのか探していた方による検索です。

「配列計算 Excel VBA Sum」
といった検索キーワードでのアクセスもあります。

[スポンサードリンク]

配列の合計をFor~Nextで求める

For~Next文の中で、地道に足し算を繰り返す、VBA全般で動くコードから見ておきましょうか。

Sub 配列の合計を求める()
 Dim arr(1 To 3) As Long
 arr(1) = 10
 arr(2) = 20
 arr(3) = 30

 Dim total As Long, i As Long
 For i = LBound(arr) To UBound(arr)
  total = total + arr(i)
 Next

 MsgBox total

End Sub

最初に、要素が3つだけのLong型の配列変数に、
  Dim arr(1 To 3) As Long

サンプルデータを代入しておきます。
  arr(1) = 10
  arr(2) = 20
  arr(3) = 30

上記のコードで準備した配列の要素から、順番にデータを取得して変数totalに加算して、
  Dim total As Long, i As Long
  For i = LBound(arr) To UBound(arr)
   total = total + arr(i)
  Next

最後にメッセージボックスに合計を表示しています。
  MsgBox total

配列の合計をWorksheetFunction.Sumで求める

続いてExcel VBAならではのコードです。

以下のコードで、先ほどのFor~Nextループを使うコードと同じ結果が得られます。

Sub 配列の合計を求める_SUM関数()
 Dim arr(1 To 3) As Long
 arr(1) = 10
 arr(2) = 20
 arr(3) = 30

 Dim total As Long
 total = WorksheetFunction.Sum(arr)

 MsgBox total

End Sub

WorksheetFunctionオブジェクトのSumメソッドで、

ワークシート関数のSUMを呼んでいます。

先ほどのFor~Nextループを使ったコードと比較しやすいように、変数totalを使って
  Dim total As Long
  total = WorksheetFunction.Sum(arr)
  MsgBox total
としていますが、
  MsgBox WorksheetFunction.Sum(arr)
としても勿論OKです。

最終更新日時:2021-05-06 16:03

[スポンサードリンク]

Home » エクセルマクロ・Excel VBAの使い方 » 配列 » Excel VBAで配列の合計を求める

「配列」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.