| 
    
     |  | >アドインにする場合はAddinInstall()イベントまたは >今回のWorkbook_Open()イベントが必須なのでしょうか。
 EXCEL起動時に実行したいマクロであれば、
 OPENイベントに記述しなくてはなりません。
 AddinInstall()イベントは、組み込んだとき(チェックしたとき)のみ
 実行されるものなので、確認メッセージや初期設定などでしか使わないので
 基本的にはOPENを使います。
 
 Private WithEvents myApp As Application
 
 Private Sub Workbook_AddinInstall()
 
 Set myApp = Application
 
 
 >またはWorkbook_SheetBeforeRightClickイベントは
 >アドインでは使えないのでしょうか。
 このイベントは、そのブックのイベントマクロです。
 これを他のブックでもイベントを取得出来るようにするには、
 
 >Private WithEvents myApp As Application
 を宣言して、
 >  Set myApp = Application
 を実行する必要があります。つまりopenイベントで
 >Set myApp = Application
 することにより、他のブックのイベントを
 アドインブックのイベントプロシージャで取得(利用)できるようになるのです。
 
 
 >最初の質問に書いた
 >
 >Private Sub Workbook_SheetBeforeRightClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)
 >
 >  MsgBox "test"
 >
 >End Sub
 >
 >上記マクロをそのままアドインにした場合は動作しなくて、
 
 アドインブックはシートが非表示になるので、
 そのように思えるだけです。
 シートがあれば動作はするのです。
 
 >下記マクロはそのままアドインで動作するのはそういうことでしょうか?
 >もしそうだとしてもそれはナゼか?がよくわかりません。
 
 >Private Sub Workbook_Open()
 >
 >  MsgBox "test"
 >
 >End Sub
 アドインブックはEXCEL起動時に自動的に開かれるので、
 openイベントは実行されます。
 
 シートモジュールのイベントと、
 ブックのイベントでは対象範囲がおおきく異なります。
 
 
 |  |