セルの値が特定の値を超えた場合にポップアップ(vbOKOnly)を表示する簡単なマクロを作成しようとしています。
私は基本的に製品と割引のワークシートを持っています。1つのセルに数式があります(A1など)。これは、すべてのエントリの実効割引のパーセント(50%または.5)として割引を示します。
私が探しているのは、セルA1の値がたとえば50%を超えた場合にメッセージボックスを表示するコードです。これは、別のセルの入力によって割引が50%を超えたためです。
ありがとう!
セルの値が特定の値を超えた場合にポップアップ(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の値がチェックされます。
ノート:
WidorWorksheet_Calculate
は(の代わりに)別のアプローチを使用しますWorksheet_Change
:
結論:Worksheet_Change
A1が同じシートにあるデータのみに依存する場合は使用しWorksheet_Calculate
、そうでない場合は使用します。
Essentially you want to add code to the Calculate
event of the relevant Worksheet.
In the Project window of the VBA editor, double-click the sheet you want to add code to and from the drop-downs at the top of the editor window, choose 'Worksheet' and 'Calculate' on the left and right respectively.
Alternatively, copy the code below into the editor of the sheet you want to use:
Private Sub Worksheet_Calculate()
If Sheets("MySheet").Range("A1").Value > 0.5 Then
MsgBox "Over 50%!", vbOKOnly
End If
End Sub
This way, every time the worksheet recalculates it will check to see if the value is > 0.5 or 50%.
セルの内容を確認するためにVBコードをループで実行する必要があるため、またはマクロを手動で実行する予定がない限り、メッセージボックスがこれに対応する最善の方法ではないと思います。この場合、値が上限を超えた場合は、セルに条件付き書式を追加して、背景を赤に変更する(たとえば)方がよいと思います。