|
Targetが複数セルのことがあるので、for eachでループしてみるのは如何でしょうか?
Private Sub Worksheet_Change(ByVal Target As Range)
' Anに値が入力されていないとBn,Cn,Dn,En,Fnは、入力できずに
'「大項目を入力して下さい」とエラーメッセージがでるようにする
' n:1〜41
Dim r As Range
For Each r In Target
If Not Intersect(r, Sheet1.Range("B1:F41")) Is Nothing Then
If Sheet1.Range("A" & r.Row) = "" Then
MsgBox "大項目を入力して下さい"
End If
End If
Next
End Sub
複数セルを一気に更新して大量にエラーが出るのが嫌であれば、ループから抜けてください。
Private Sub Worksheet_Change(ByVal Target As Range)
' Anに値が入力されていないとBn,Cn,Dn,En,Fnは、入力できずに
'「大項目を入力して下さい」とエラーメッセージがでるようにする
' n:1〜41
Dim r As Range
For Each r In Target
If Not Intersect(r, Sheet1.Range("B1:F41")) Is Nothing Then
If Sheet1.Range("A" & r.Row) = "" Then
MsgBox "大項目を入力して下さい"
Exit For ' ★
End If
End If
Next
End Sub
無関係な広範囲のセルを更新時に大量にループするのが嫌であれば下記で
Private Sub Worksheet_Change(ByVal Target As Range)
' Anに値が入力されていないとBn,Cn,Dn,En,Fnは、入力できずに
'「大項目を入力して下さい」とエラーメッセージがでるようにする
' n:1〜41
Dim r As Range
If Not Intersect(Target, Sheet1.Range("B1:F41")) Is Nothing Then ' ★
For Each r In Target
If Not Intersect(r, Sheet1.Range("B1:F41")) Is Nothing Then
If Sheet1.Range("A" & r.Row) = "" Then
MsgBox "大項目を入力して下さい"
End If
End If
Next
End If
End Sub
|
|