Excelのイベントマクロ
Private Sub Worksheet_Activate()に関する質問です。
ワークシート1と2があるとします。
ワークシート1は普通のデータが記されており、それのソートを実行するマクロをMacro1、そのデータから重複したものを外してソートするマクロをMacro2とし、Macro1から呼び出してます。
今、シート2を開いたときは必ず、シート1でMacro1を実行するようにしたいのですが、以下のように記述すると、無限ループになってしまいうまくいきません。
どなたか、方法をお教えください。
Sheet2に記載したイベントマクロ
Private Sub Worksheet_Activate()
Sheets("Sheet1").Select
Macro1
Sheets("Sheet2").Select
End Sub
標準モジュールに記載したマクロ
Sub Macro1()
Dim team As Integer
ActiveSheet.Unprotect ("pass")
Range("A3:c18").Select
Selection.Sort Key1:=Range("c3"), Order1:=xlAscending, Key2:=Range("A3") ,Order2:=xlAscending, Header:=xlNo,OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, SortMethod:=xlPinYin, DataOption1:=xlSortNormal, DataOption2:=xlSortNormal
team = Range("b1").Value
ActiveSheet.PageSetup.PrintArea = "$A$3:$c$" + CStr(team + 2)
Macro2
Range("A1").Select
ActiveSheet.Protect ("pass")
End Sub
Sub Macro2()
Range("i3:j18").ClearContents
Range("i3").Select
Selection.Consolidate Sources:="R3C6:R18C7", Function:=xlMax, TopRow:=False,LeftColumn:=True, CreateLinks:=False
Range("i3:k18").Select
Selection.Sort Key1:=Range("k3"), Order1:=xlAscending, Header:=xlNo,OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, SortMethod:=xlPinYin, DataOption1:=xlSortNormal, DataOption2:=xlSortNormal
Range("j3:j18").Select
Selection.NumberFormatLocal = "0_);[赤](0)"
End Sub