Excel シートにフォームがあり、2 つの必須セルがあり、ユーザーが未完成のままにすることがよくあります。セルが完成していない場合、ユーザーがシートを保存できず、赤で強調表示され、メッセージボックスが表示される次のコードがあります。
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
ok As Boolean
Dim xlSht As Worksheet
OK = False
Set xlSht = ThisWorkbook.Worksheets("Changes Form")
'Cell 1
If xlSht.Range("B13") = "" Then
xlSht.Range("B13").Interior.Color = RGB(255, 0, 0)
ok = True
Else
xlSht.Range("B13").Interior.ColorIndex = xlNone
ok = False
If xlSht.Range("E13") = "" Then
xlSht.Range("E13").Interior.Color = RGB(255, 0, 0)
ok = True
Else
xlSht.Range("E13").Interior.ColorIndex = xlNone
ok = False
End If
End If
If OK = True Then
MsgBox "Please review the highlighted cells and ensure the fields are populated."
Cancel = True
End If
End Sub
コードは機能しますが、両方のセルにエントリがない場合、セル B13 のみに色が付けられます。コードの「ok = True」ビットが B13 に対して実行されると、残りのコードを最後までスキップすると思います。両方のセルが強調表示されるように修正する方法がわかりません。
データ検証を通じてユーザーに警告することを考えましたが、両方のセルにリストボックスがあるため、まだ可能かどうかわかりません。
助けてくれてありがとう。