| 
    
     |  | >範囲指定が多いので、Range()内が長くなってしまいますが、どうしたら... 基本的には、折り返して記述すれば良いと思います。
 
 あとはTargetが複数範囲だった時の対応を入れないといけませんね。
 
 Private Sub Worksheet_Change(ByVal Target As Range)
 Dim rng As Range
 Dim r  As Range
 
 Set rng = Intersect(Target, Rows("5:3000"), _
 Range("Z:Z,AB:AB,AD:AD,AH:AH,AJ:AJ,AL:AL"))
 If Not rng Is Nothing Then
 Application.EnableEvents = False
 For Each r In rng
 If r.Value <> "" Then
 r.Offset(, 1).Value = "-"
 Else
 'r.Offset(, 1).Value = ""
 r.Offset(, 1).ClearContents 'で可?
 End If
 Next
 Application.EnableEvents = True
 Set rng = Nothing
 End If
 End Sub
 
 |  |