• ベストアンサー

excelマクロ シートの移動

excelのシートを移動するときにマクロでイベントを発生させたい。 移動前のシートにWorksheet_Deactivate()の処理を 書いたのですが移動前のシートをselectしているため 何度もループしてしまいます。 何かよい方法はありますでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.3

No2のmerlionXXです、ar00000さんこんばんは。 あれだけではわかりにくいですね。例を書きます。 Private Sub Worksheet_Deactivate() MsgBox "Deactivateです" Me.Select '自分に戻る MsgBox "またActiveです。" Application.EnableEvents = False 'イベントを発生させない Sheet2.Select '他シート再度選択 Application.EnableEvents = True 'イベントを発生せない指示を止める End Sub

ar00000
質問者

お礼

この方法で上手くいきました。 どうも有り難うございました。

その他の回答 (3)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.4

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)
回答No.2

Worksheet_Deactivate()で移動前のシートをselectして、また他のシートをselectしているのですか? それなら無限ループに陥りますね。selectをやめて他の方法をとるか、Application.EnableEventsで逃げてください。

  • onlyrom
  • ベストアンサー率59% (228/384)
回答No.1

ちょと意味不明ですが。。。 WorkSheet_Activateイベントのことでしょうか。  

関連するQ&A