VBA シートプログラムでRangeエラー
いつもお世話になっております。
Excel2003を使用しております。
シートに直接プログラムを書いています。
(例として、Sheet1とします)
シートの内容が変わったときに、色々プログラムを実行していこうと思っているのですが、
Private Sub Worksheet_Change(ByVal Target As Range)
のTargetが上手く取得できていない気がします。
今までは上手く動いていたのですが、
急にTargetの値に数値(セルに入力した値)が入ってしまうようになり
上手く組めなくて困っています。
Private Sub Worksheet_Change(ByVal Target As Range)
Dim 開始1 As Range
Dim 終了1 As Range
Dim 開始2 As Range
Dim 終了2 As Range
Set 開始1 = Range("D5:D63")
Set 終了1 = Range("E5:E63")
Set 開始2 = Range("F5:F63")
Set 終了2 = Range("G5:G63")
If ThisWorkbook.ActiveSheet.ProtectContents Then '保護かかってたら
End '強制終了
End If
If Not Application.Intersect(Target, 開始1) Or Application.Intersect(Target, 実績日開始2) Is Nothing Then
Call 開始(Target, 開始1, 開始2)
ElseIf Not Application.Intersect(Target, 終了1) Or Application.Intersect(Target, 終了2) Is Nothing Then
Msgbox "テスト!"
End If
End Sub
'-----------------------------------------------
Sub 開始(ByVal Target As Range, 開始1 As Range, 開始2 As Range)
If Not Application.Intersect(Target, 開始1) Is Nothing Then
MsgBox Target.Row
End If
If Not Application.Intersect(Target, 開始2) Is Nothing Then
MsgBox Target.Row + 1
End If
End Sub
全部シートに書いています。
まだ、テスト段階のため適当なプログラムしか書いておりません。
(指定範囲が変更された場合に、Msgboxを出したりなど
単純なことしかしていません)
どこが悪いのか、教えて頂けないでしょうか?
よろしくお願い致します。