
上記のように2つの列があります。ユーザーが行を入力し、列の給与の合計が1000000を超えた場合に、アラートボックスを表示するにはどうすればよいですか?
VBA に縛られていない場合は、Data Validation. Excel 2007 で、給与の範囲 (列としましょうB)Dataを選択し、リボンの をクリックして、 を選択しますData Validation。そこから、次の式を入力します。
=B:B<1000000
列の合計が 1000000 を超える値を入力すると、常にエラーがスローされます。必要に応じて、エラーをカスタマイズすることもできます。

これは、単一のセルに対して行う方法です。このコードは、モジュールではなく、その特定のシートの vba ページにある必要があります。範囲に合わせて動作するように適応できると確信しています。
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Range("A1"), Target) Is Nothing Then
If Range("A1").Value > 1000000
MsgBox "A1 is greater than 1000000, ALERT! ALERT! ALERT!"
End If
End If
End Sub
ただし、条件付き書式設定や @RocketDonkey のようなデータ検証などの非 VBA ソリューションは、より良いアイデアです。
「給与」が列 B にあるとします。
Private Sub Worksheet_Change(ByVal Target As Range)
Total = Application.WorksheetFunction.Sum(Columns("B:B"))
If Total >= 1000000 Then
MsgBox "My message", vbCritical, "Error"
End If
End Sub