今回はExcel VBAで数値を合計するための関数、Sum、SumIf、SumIfsについてご紹介します。
Sum関数
セル範囲の数値を合計するには、
WorksheetFunction.Sum(合計範囲)
を使います。
下記サンプル1は、変数ansにセルB2~B11の数値を合計した値を代入し、メッセージボックスに表示させています。
・サンプル1
Sub 数値を合計() Dim ans As Long ans = WorksheetFunction.Sum(Range(“B2:B11”)) ‘セルB2~B11の値を足し、計算結果を変数ansに代入 MsgBox “合計:” & ans & “円” ‘メッセージボックスに変数ansに代入した値を表示 End Sub |
SumIf関数
指定したセル範囲の数値を、条件付きで合計するには、
WorksheetFunction.SumIf(検索範囲,検索条件,合計範囲)
を使います。
下記のサンプル2では、
変数rng1に検索範囲を代入し、
変数rng2に合計範囲を代入し、
変数strに検索条件の文字列「りんご」を代入し、
変数ansにセルB2~B11の数値を合計した値を代入し、メッセージボックスに表示させています。
・サンプル2
Sub 条件付きで合計() Dim ans As Long Set rng1 = Range(“A2:A11”) ‘セルA2~A11を代入 str = “りんご” ans = WorksheetFunction.SumIf(rng1, str, rng2) ‘検索範囲は変数rng1、検索条件はstr、合計反映はrng2 MsgBox “合計:” & ans & “円” ‘メッセージボックスに変数ansに代入した値を表示 End Sub |
SumIfs関数
指定したセル範囲の数値を、複数の条件付きで合計するには、
WorksheetFunction.SumIfs(合計範囲,検索範囲1,検索条件1,[検索範囲2,検索条件2,……])
を使います。
[]の中(検索範囲2以降)は省略可能です。
下記の例では、
変数rng1に検索範囲1を代入し、
変数rng2に検索範囲2を代入し、
変数rng3に合計範囲を代入し、
変数str1に検索条件1の文字列「りんご」を代入し、
変数str2に検索条件2の文字列「果物」を代入し、
変数ansにセルC2~C11の数値を合計した値を代入し、メッセージボックスに表示させています。
Sub 複数の条件付きで合計() Dim ans As Long Set rng1 = Range(“A2:A11”) ‘セルA2~A11を代入 str1 = “りんご” ans = WorksheetFunction.SumIfs(rng3, rng2, str1, rng1, str2) ’合計反映はrng3、検索範囲1は変数rng2、検索条件1はstr1、検索範囲2は変数rng1、検索条件2はstr2 MsgBox “合計:” & ans & “円” ‘メッセージボックスに変数ansに代入した値を表示 End Sub |