• 締切済み

EXCELアドイン自動起動マクロ

アドインに登録し、不特定のCSVファイルを読み込んだとき(OPENしたとき)に内容を判別し、起動するマクロを作成しようとしています。 標準モジュールに”Sub Auto_Open()”により記述し、アドイン登録しましたが、期待する動作となりません。 ----------------------------- Sub Auto_Open() MsgBox "ファイルが開く毎に起動させたい" End Sub ----------------------------- ☆EXCEL未起動→ファイルオープンしたときには、上記MsgBoxが表示されるが、EXCEL起動中→ファイルオープンでは表示されません。 ファイルを開くたびに動作するマクロを登録するためには、どのようなテクニックが必要なのでしょうか?

みんなの回答

  • pauNed
  • ベストアンサー率74% (129/173)
回答No.2

こんにちは。 そのアドインBookの 'ThisWorkbookモジュールに Option Explicit Private WithEvents xlApp As Application Private Sub Workbook_BeforeClose(Cancel As Boolean)   Set xlApp = Nothing End Sub Private Sub Workbook_Open()   Set xlApp = Application End Sub Private Sub xlApp_WorkbookOpen(ByVal Wb As Workbook)   If Not Wb Is Me Then MsgBox "open" End Sub アドイン自身のOpen時にもメッセージが必要なら If Not Wb Is Me Then は不要です。

BoogieMan
質問者

お礼

ありがとうございました。 参考にしてチャレンジしてみましたが、 エラーになり起動しませんでした。 私が使っているバージョン(Office97)が古いからでしょうか? 他の方法を検討します。

回答No.1

> EXCEL起動中→ファイルオープンでは表示されません。 新しく開かれたファイル=アクティブ(表面に表示)になる。 起動中のEXCELファイル=背面に隠れた状態になる。 というのでしたら、 起動中のファイルの ThisWorkbookモジュールに ' Private Sub Workbook_WindowDeactivate(ByVal Wn As Window) MsgBox "新しいファイルが開かれました" End Sub ' ではいかがでしょうか。

BoogieMan
質問者

お礼

ご回答ありがとうございました。ただ、 「アドインで登録し、不特定のファイルを開いたとき」 の条件での動作が条件となるため、参考とさせていただきますが 今回の内容に合致しません。他の方法を検討してみます。 ありがとうございました。

関連するQ&A