【Excel VBA】Sum関数、SumIf関数、SumIfs関数

Excel VBA講座 開講中!

今回は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
Dim rng1 As Range
Dim rng2 As Range
Dim str As String

Set rng1 = Range(“A2:A11”) ‘セルA2~A11を代入
Set rng2 = Range(“B2:B11”) ‘セルB2~B11を代入

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
Dim rng1 As Range
Dim rng2 As Range
Dim rng3 As Range
Dim str1 As String
Dim str2 As String

Set rng1 = Range(“A2:A11”) ‘セルA2~A11を代入
Set rng2 = Range(“B2:B11”) ‘セルB2~B11を代入
Set rng3 = Range(“C2:C11”) ‘セルC2~C11を代入

str1 = “りんご”
str2 = “果物”

ans = WorksheetFunction.SumIfs(rng3, rng2, str1, rng1, str2) ’合計反映はrng3、検索範囲1は変数rng2、検索条件1はstr1、検索範囲2は変数rng1、検索条件2はstr2

MsgBox “合計:” & ans & “円” ‘メッセージボックスに変数ansに代入した値を表示

End Sub

複数の条件付きで合計

複数の条件付きで合計

シェアする

  • このエントリーをはてなブックマークに追加

フォローする