Excel VBAで複数セルの合計が特定の値となるかチェックする方法

この記事では、Excel VBAを使用して複数のセルの合計が特定の値になるかどうかをチェックする処理方法について解説します。この処理は業務で頻繁に用いられるケースがあり、効率化に貢献します。具体的なコード例、詳細な解説、そして応用例を3つ以上提供します。

目次

Excel VBAの基本

Excel VBA(Visual Basic for Applications)は、Microsoft Excelに組み込まれたプログラミング言語です。これを用いると、単純作業の自動化だけでなく、高度なデータ分析やレポート作成も可能になります。

そもそも、どこにVBAコードを書いて、どう実行すれば良いのか分からない場合は、以下の記事をご参照ください。

基本コードの概要

Excel VBAを使用して複数セルの合計値が特定の値に達するかを判断する基本的なコードを以下に示します。


Sub CheckSum()
    Dim total As Double
    Dim targetValue As Double
    targetValue = 100 ' 目標値
    total = WorksheetFunction.Sum(Range("A1:A10")) ' A1からA10までの合計値
    
    ' 合計値が目標値と一致するかチェック
    If total = targetValue Then
        MsgBox "合計値が目標値に達しました。"
    Else
        MsgBox "合計値が目標値に達していません。"
    End If
End Sub

コードの詳細解説

変数の設定

このコードでは、`total`と`targetValue`という2つの変数を定義しています。`total`は複数セルの合計値を格納するための変数、`targetValue`は目標とする合計値です。

合計値の計算

`WorksheetFunction.Sum(Range(“A1:A10”))`によって、セルA1からA10までの合計値を計算しています。

条件分岐

`If total = targetValue Then`によって、計算した合計値`total`が目標値`targetValue`と一致するかどうかを判断しています。

応用例

応用例1: 複数の範囲を指定

複数のセル範囲での合計値を確認する場合のコードです。


Sub CheckMultipleRangeSum()
    Dim total As Double
    Dim targetValue As Double
    targetValue = 200
    
    ' A1:A10とB1:B10の合計値
    total = WorksheetFunction.Sum(Range("A1:A10")) + WorksheetFunction.Sum(Range("B1:B10"))
    
    ' チェック
    If total = targetValue Then
        MsgBox "合計値が目標値に達しました。"
    Else
        MsgBox "合計値が目標値に達していません。"
    End If
End Sub

応用例2: 目標値を動的に設定

目標値をExcelの特定のセルから取得する例です。


Sub DynamicTargetValue()
    Dim total As Double
    Dim targetValue As Double
    
    ' 目標値をC1セルから取得
    targetValue = Range("C1").Value
    
    ' 合計値計算とチェック
    total = WorksheetFunction.Sum(Range("A1:A10"))
    If total = targetValue Then
        MsgBox "合計値が目標値に達しました。"
    Else
        MsgBox "合計値が目標値に達していません。"
    End If
End Sub

応用例3: 合計値が範囲内かチェック

合計値が特定の範囲内に収まるかをチェックするコード例です。


Sub CheckSumWithinRange()
    Dim total As Double
    Dim lowerBound As Double
    Dim upperBound As Double
    
    lowerBound = 90
    upperBound = 110
    
    ' 合計値計算
    total = WorksheetFunction.Sum(Range("A1:A10"))
    
    ' チェック
    If total >= lowerBound And total <= upperBound Then
        MsgBox "合計値が許容範囲内です。"
    Else
        MsgBox "合計値が許容範囲を超えています。"
    End If
End Sub

まとめ

Excel VBAを使って複数のセルの合計値が特定の値となるかを効率よくチェックする方法について解説しました。この処理は業務効率化に非常に有用であり、応用範囲も広いです。基本的なコードから応用例まで、具体的に見てきましたので、ぜひ実際の業務での利用に役立ててください。

VBAも良いけどパワークエリも良い

VBAの解説をしてきましたが、VBAは正直煩雑でメンテナンス性が悪いです。最近はモダンExcelと呼ばれるパワークエリやパワーピボットへのシフトが進んできています。本サイトでもパワークエリの特集をしており、サンプルデータを含む全11回の学習コンテンツでパワークエリを習得することができます。

クリックするとパワークエリの全11講座が表示されます。

パワーピボットの記事はありません。興味がある場合は、書籍で学んでみてください

コメント

コメントする

目次