- ベストアンサー
excelマクロ シートの移動
excelのシートを移動するときにマクロでイベントを発生させたい。 移動前のシートにWorksheet_Deactivate()の処理を 書いたのですが移動前のシートをselectしているため 何度もループしてしまいます。 何かよい方法はありますでしょうか?
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
No2のmerlionXXです、ar00000さんこんばんは。 あれだけではわかりにくいですね。例を書きます。 Private Sub Worksheet_Deactivate() MsgBox "Deactivateです" Me.Select '自分に戻る MsgBox "またActiveです。" Application.EnableEvents = False 'イベントを発生させない Sheet2.Select '他シート再度選択 Application.EnableEvents = True 'イベントを発生せない指示を止める End Sub
その他の回答 (3)
- imogasi
- ベストアンサー率27% (4737/17069)
Thisworkbookのイベントに Private Sub Workbook_SheetActivate(ByVal Sh As Object) MsgBox Sh.Name End Sub これでシートタブをクリックするごとに、シート名を表示します。 またモジュール1に Sub test01() Worksheets("Sheet2").Select End Sub を実行(マウスでクリックでなくて)しても、シート名を表示します。 Workbook_SheetActivateを使う。これではどうですか。
- merlionXX
- ベストアンサー率48% (1930/4007)
Worksheet_Deactivate()で移動前のシートをselectして、また他のシートをselectしているのですか? それなら無限ループに陥りますね。selectをやめて他の方法をとるか、Application.EnableEventsで逃げてください。
- onlyrom
- ベストアンサー率59% (228/384)
ちょと意味不明ですが。。。 WorkSheet_Activateイベントのことでしょうか。
お礼
この方法で上手くいきました。 どうも有り難うございました。