dポイントプレゼントキャンペーン実施中!

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

A 回答 (2件)

>新しいファイルを開くと、パーソナルのThisWorkBookは、白紙になっています。


そんなはずはないのですが。
PERSONAL.XLS ?に書きこんで、それが消えてしまうとことは、保存し忘れたのでしょうか?
なにをしたいのかわかりませんが、

>新しいファイルにに対しても、実行する方法はないでしょうか。
それは、また別問題です。

PERSONAL.XLS に書きこんで、新しいファイルに実行するということは、新しいファイルのオブジェクトを取得する必要があります。

http://oshiete.goo.ne.jp/qa/6371499.html
質問番号:6371499
エクセル起動時、自動的にマクロを実行する

手前味噌かもしれませんが、ここの#4は参考になるかもしれません。
    • good
    • 0

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単位でのイベントを活用します。
    • good
    • 0

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