プロが教える店舗&オフィスのセキュリティ対策術

アドインに登録し、不特定のCSVファイルを読み込んだとき(OPENしたとき)に内容を判別し、起動するマクロを作成しようとしています。

標準モジュールに”Sub Auto_Open()”により記述し、アドイン登録しましたが、期待する動作となりません。
-----------------------------
Sub Auto_Open()
MsgBox "ファイルが開く毎に起動させたい"
End Sub
-----------------------------
☆EXCEL未起動→ファイルオープンしたときには、上記MsgBoxが表示されるが、EXCEL起動中→ファイルオープンでは表示されません。

ファイルを開くたびに動作するマクロを登録するためには、どのようなテクニックが必要なのでしょうか?

A 回答 (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
は不要です。
    • good
    • 0
この回答へのお礼

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

お礼日時:2007/07/30 13:44

> EXCEL起動中→ファイルオープンでは表示されません。



新しく開かれたファイル=アクティブ(表面に表示)になる。
起動中のEXCELファイル=背面に隠れた状態になる。
というのでしたら、
起動中のファイルの ThisWorkbookモジュールに
'
Private Sub Workbook_WindowDeactivate(ByVal Wn As Window)
MsgBox "新しいファイルが開かれました"
End Sub
'
ではいかがでしょうか。
    • good
    • 0
この回答へのお礼

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

お礼日時:2007/07/14 23:35

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!