このサイトの記事内では「アフィリエイト広告」などの広告を掲載している場合があります。
消費者庁が問題としている「誇大な宣伝や表現」とならないよう配慮しコンテンツを制作しておりますのでご安心ください。
問題のある表現が見つかりましたらお問い合わせよりご一報いただけますと幸いです。

【VBA】配列内の数値を合計する方法

2024年5月15日

今回は配列内の数値を合計する方法を紹介します。

配列内の数値を合計する方法は主に2つがあります。

  1. For文で1つずつ足し合わせる方法
  2. Excel関数のSum関数を使う方法

For文を使うとコードが数行必要で読みづらいため、Sum関数を使う方法がおすすめです。

今回はSum関数を使って合計する方法と、知っておきたいポイント2つを紹介します。

VBAが難しいと感じたら
ココナラでVBAの開発請負を行っています。
お気軽にご相談ください。

配列内の数値を合計する方法 (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関数を使うメリットです。

VBAが難しいと感じたら
ココナラでVBAの開発請負を行っています。
お気軽にご相談ください。

VBA

Posted by やろまい