ThisWorkBookモジュールとSheetモジュールの両立
エクセル2003でマクロを組んでいます。
Sheet1,Sheet2の2つのシートがあり、
片方のシートの"A4:G10"の範囲に値を書き込むと、もう片方の同じ位置に同じ値が書き込まれるようなマクロを組みたいです。
以前ここで教えていただいたものを改変して以下を作りました(ThisWorkBookモジュールです)。
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Dim r As Range
Dim Num As Integer
Dim S As String, Sh_name As String
Sh_name = ActiveSheet.Name
Set r = Intersect(Target, Range("A4:G10"))
If Not (r Is Nothing) Then
Application.EnableEvents = False
For Num = 1 To 2
S = "Sheet" & Num
If S <> Sh_name Then
Worksheets(S).Range(r.Address).Value = r.Value
End If
Next
Application.EnableEvents = True
End If
End Sub
ここまでは正常に動作します。
また、
Sheet1とSheet2のモジュールに、
A列のセルに値が入力された場合、同じ行のC列のセルの色を塗るという記述をしています。
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 Then
Cells(Target.Row, 3).Interior.ColorIndex = 5
End If
End Sub
これらを同時に生かしたいのですが、
どのように書けばいいでしょうか。
EnableEvents = False/Trueを消してしまうと、
Worksheets(S).Range(r.Address).Value = r.Valueが実行されるたびにThisWorkBookモジュールが動いているようです。
そして2回目のSet r = Intersect(Target, Range("A4:G10"))でエラーが出ます。
(エラーは出ずとも延々と(無限ではない回数)ThisWorkBookモジュールを繰り返したコードもありました。)
よろしくお願いします。
お礼
ありがとうございます。