1
現在、このコードがあります。 Column A
には、現在の「はい」または「いいえ」の選択肢があります。ユーザーがColumn T
(19)のセルをクリックしたときに保護されたセルがクリックされたときの警告メッセージの表示
Private Sub worksheet_change(ByVal Target As Range)
If Not Intersect(Target, Range("A:A")) Is Nothing Then
ActiveSheet.Unprotect
If Target = "YES" Then
'Column B to S
For i = 1 To 18
With Target.Offset(0, i)
.Locked = False
.FormatConditions.Add Type:=xlExpression, Formula1:="=ISBLANK(" & Target.Offset(0, i).Address & ")"
With .FormatConditions(.FormatConditions.Count)
.SetFirstPriority
.Interior.ColorIndex = 4
End With
End With
Next i
ElseIf Target = "NO" Then
For i = 1 To 73
With Target.Offset(0, i)
.Value = ""
.Locked = True
.FormatConditions.Delete
End With
Next i
End If
ActiveSheet.Protect
End If
End Sub
は今、私は、これは「はい」を選択するには適用されません、ユーザーに警告メッセージを表示したいです。
[Worksheet_Change](https://msdn.microsoft.com/en-us/library/office/ff839775.aspx)イベントマクロを使用しています。セルの選択をキャッチするには、[Worksheet_SelectionChange](https://msdn.microsoft.com/en-us/library/office/ff194470.aspx)イベントマクロを使用する必要があります。保護を設定すると、**ロックされたセルを選択する**機能を削除することもできます。 MsgBoxはありませんが、ロックされたものを選択することはできません。 – Jeeped
@Jeepedこれに関するサンプルコードを教えてもらえますか?私はVBAで非常に新しいです。既存のイベントと連携しますか? – PeterS
元のWorksheet_Changeの一部を書き直す必要があります。複数の変更は処理されません(ターゲットは1つのセル以上になる可能性があります)、イベントをオフにしないでください。私に数分を与えてください。 – Jeeped