• ベストアンサー

ファイルオープン時、PERSONALでVBA実行

新規作成した、エクセルファイルに対し、ファイルオープン時、PERSONALでVBA実行したいのですが。 新しいファイルを開くと、パーソナルのThisWorkBookは、白紙になっています。 新しいファイルにに対しても、実行する方法はないでしょうか。 ご存知の方がおられましたら教えてください。 よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.1

>新しいファイルを開くと、パーソナルのThisWorkBookは、白紙になっています。 そんなはずはないのですが。 PERSONAL.XLS ?に書きこんで、それが消えてしまうとことは、保存し忘れたのでしょうか? なにをしたいのかわかりませんが、 >新しいファイルにに対しても、実行する方法はないでしょうか。 それは、また別問題です。 PERSONAL.XLS に書きこんで、新しいファイルに実行するということは、新しいファイルのオブジェクトを取得する必要があります。 http://okwave.jp/qa/q6371499.html 質問番号:6371499 エクセル起動時、自動的にマクロを実行する 手前味噌かもしれませんが、ここの#4は参考になるかもしれません。

すると、全ての回答が全文表示されます。

その他の回答 (1)

  • end-u
  • ベストアンサー率79% (496/625)
回答No.2

PERSONAL.XLSの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_NewWorkbook(ByVal Wb As Workbook)   MsgBox "NewWorkbook" End Sub Private Sub xlApp_WorkbookOpen(ByVal Wb As Workbook)   If Not Wb Is ThisWorkbook Then     MsgBox "Open:" & Wb.Name   End If End Sub PERSONAL.XLSを開いた時のWorkbook_Openイベントで Excel.Applicationそのものを変数にセットします。 WithEventsキーワードで、そのxlAppのイベントを利用できるようにして xlApp_WorkbookOpen、xlApp_NewWorkbookなどのApplication単位でのイベントを活用します。

すると、全ての回答が全文表示されます。

関連するQ&A