Excel VBA質問箱 IV

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

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


3074 / 13644 ツリー ←次へ | 前へ→

【64441】Workbook_SheetChangeを他のブックでも共通で使用するには? kirin400 10/2/7(日) 10:56 質問[未読]
【64442】Re:Workbook_SheetChangeを他のブックでも... kanabun 10/2/7(日) 11:27 発言[未読]
【64446】Re:Workbook_SheetChangeを他のブックでも... kirin400 10/2/8(月) 0:08 お礼[未読]

【64441】Workbook_SheetChangeを他のブックでも共...
質問  kirin400  - 10/2/7(日) 10:56 -

引用なし
パスワード
   Workbook_SheetChangeを他のブックから共通で適用させる方法はないのでしょうか?

たとえば、下記例のように記載したとして、他のブックでも同じマクロを組まないで共通で使用したいと思っています。

**************************************************************
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
  Target.Font.Color = RGB(255, 0, 0)
End Sub
**************************************************************

他の方法などでも結構ですのでアドバイスなど頂けると大変助かります。

【64442】Re:Workbook_SheetChangeを他のブックで...
発言  kanabun  - 10/2/7(日) 11:27 -

引用なし
パスワード
   ▼kirin400 さん:
>Workbook_SheetChangeを他のブックから共通で適用させる方法はないのでしょうか?
>
一例ですが、
一番最初に開かれるBookは個人用マクロブックですから、
Personal.xlsのBookモジュール(Thisworkbook)の宣言部に

Private WithEvents myApp As Application 

のようにApplicationオブジェクトのインスタンスをEvent付きで
宣言しておいて、
下のように、Workbook_Open()プロシージャで、

Private Sub Workbook_Open()
 Set myApp = Application
End Sub

とmyAppを実体化してみてください。
この状態でVBEコードウィンドウの一番上にある左側のドロップ
ダウンリスト内に myApp オブジェクトが現れ、
右のイベント用ドロップダウンに
  SheetChange
が現れるようになるので、

Private Sub myApp_SheetChange(ByVal Sh As Object, ByVal Target As Range)

というすべてのBookのイベントプロシージャが利用可能になります。

【64446】Re:Workbook_SheetChangeを他のブックで...
お礼  kirin400  - 10/2/8(月) 0:08 -

引用なし
パスワード
   ▼kanabun さん:
無事問題が解決しました。
これでアドインの利用できる範囲が広がります。
本当にありがとうございました。

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