セルの値が特定の値を超えた場合にポップアップ(vbOKOnly)を表示する単純なマクロを作成しようとしています。
基本的に、製品と割引が記載されたワークシートがあります。 1つのセル(A1など)に数式があり、すべてのエントリの割引率(50%または.5)をパーセントで示しています。
私が探しているのは、セルA1の値が50%を超えた場合にメッセージボックスを表示するコードです。これは、別のセルの入力により割引が50%を超えたためです。
ありがとう!
次のVBAコードをシートに追加できます。
Private Sub Worksheet_Change(ByVal Target As Range)
If Range("A1") > 0.5 Then
MsgBox "Discount too high"
End If
End Sub
シート上でセルが変更されるたびに、セルA1の値がチェックされます。
ノート:
Widor は異なるアプローチを使用します(Worksheet_Calculate
の代わりにWorksheet_Change
):
結論:A1が同じシートにあるデータのみに依存する場合はWorksheet_Change
を使用し、そうでない場合はWorksheet_Calculate
を使用します。
基本的に、関連するワークシートのCalculate
イベントにコードを追加します。
VBAエディターの[プロジェクト]ウィンドウで、エディターウィンドウの上部にあるドロップダウンリストからコードを追加するシートをダブルクリックし、左右の[ワークシート]と[計算]をそれぞれ選択します。
または、使用するシートのエディターに次のコードをコピーします。
Private Sub Worksheet_Calculate()
If Sheets("MySheet").Range("A1").Value > 0.5 Then
MsgBox "Over 50%!", vbOKOnly
End If
End Sub
この方法では、ワークシートが再計算するたびに、値が> 0.5または50%であるかどうかが確認されます。
セルの内容をチェックするためにループで実行されるVBコードが必要な場合、またはマクロを実行する予定がない場合、メッセージボックスはこれに最適な方法だとは思わないこの場合、値が上限を超えている場合、セルに条件付き書式を追加して背景を赤(たとえば)に変更すると良いと思います。