Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


5521 / 13645 ツリー ←次へ | 前へ→

【50332】標準モジュールでWorksheet_Change Tatu 07/7/19(木) 21:58 質問[未読]
【50333】Re:標準モジュールでWorksheet_Change ichinose 07/7/19(木) 22:29 発言[未読]

【50332】標準モジュールでWorksheet_Change
質問  Tatu  - 07/7/19(木) 21:58 -

引用なし
パスワード
   This workbookとか該当シートのWorksheet_Change(・・・)
ではなく、標準モジュール(特定のBookだけでなく汎用性を持たし
他のワークブックでも利用したい)で同様のことはできないのでし
ょうか。つまり、アクティブセルが移動(Enterだけでなく)すると
イベントを実行するようにしたいのですが、分りません。どなた
か教えてもらえないでしょうか。

【50333】Re:標準モジュールでWorksheet_Change
発言  ichinose  - 07/7/19(木) 22:29 -

引用なし
パスワード
   ▼Tatu さん:
こんばんは。

>This workbookとか該当シートのWorksheet_Change(・・・)
>ではなく、標準モジュール(特定のBookだけでなく汎用性を持たし
>他のワークブックでも利用したい)で同様のことはできないのでし
>ょうか。
標準モジュールではイベントプロシジャーは記述できません。
イベントプロシジャーは、オブジェクトモジュールでしか記述できません。

>つまり、アクティブセルが移動(Enterだけでなく)すると
>イベントを実行するようにしたいのですが、分りません。

ということならば、

Thisworkbookのモジュールに

Option Explicit
'==============================================
Private WithEvents app As Application
'==============================================
Sub ev_start()
  Set app = Application
End Sub
'==============================================
Sub ev_end()
  Set app = Nothing
End Sub
'==============================================
Private Sub app_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
  MsgBox Target.Address(, , , True)
End Sub


最初にev_startを実行してください。
その後、適当にセルを選択してください。
イベントが発生し、選択したセルアドレスを表示します。
これは、どのブックで行っても実行されます(上記マクロの記述されていないブックなど)。

ev_endの実行でイベントが発生しません。

試してみてください。

5521 / 13645 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free