私はグーグルで検索し、特定のセル D4 が変更された場合にのみ実行する次のコードを作成しました。
Private Sub Worksheet_Change(ByVal Target As Range)
Dim KeyCells As Range
Static EmailSent As Boolean
Dim Threshold As Integer
Dim Cell As String, Email As String, Msg As String
Cell = "D4"
Threshold = 100
Email = Range("E7").Value
Set KeyCells = Range(Cell)
If Not Application.Intersect(Range(Cell), Range(Target.Address)) Is Nothing Then
Dim x As Integer
x = Range(Cell).Value
If x >= Threshold Then
EmailSent = False
ElseIf x < Threshold And Not EmailSent Then
EmailSent = True
Msg = "You only have " & x & " widgets remaining."
MsgBox Msg
SendMail Email, Msg
End If
End If
End Sub
これは機能し、ここには同様の質問がたくさんあることを知っています。しかし、ここで問題が発生します。これは、D4 を明示的な値、たとえば に設定した場合にのみ機能します"48"
。D4 が数式であっても機能するようにしたいので、D4 が"=SUM(A4:C4)"
その合計が 100 を下回った場合に電子メールを送信する必要がある場合、このコードはその場合に電子メールを送信しません :-(
これを修正する方法を知っている人はいますか?