|
コードをあらためてよく拝見しました。
ご指摘のとおりですね。
こんな感じですか?
単一セルの変更時だけ実行することとしています。
なお、入力規則の内容は見ていません。
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Intersect(Target, Range("E23:E60")) Is Nothing Then Exit Sub
If Target.Value Like "*○○○*" Then
With Target.Offset(0, 3).Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, _
Operator:=xlBetween, Formula1:="=$X:$X"
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.IMEMode = xlIMEModeNoControl
.ShowInput = True
.ShowError = True
End With
End If
End Sub
|
|