こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

エクセルで保存時に自動実行させるマクロ?

エクセル97です。
起動時のAuto_Openや終了時のAuto_Closeのように、ファイルに保存をかけた時に自動的にマクロを実行させるにはどうしたらよいのでしょうか?
フォームなどのマクロボタンで保存させるのではなく、通常に保存する場合です。
よろしくお願いします。

投稿日時 - 2002-12-24 11:44:54

QNo.434756

すぐに回答ほしいです

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

保存時に自動的にマクロを実行するには、Workbook_BeforeSave を使います。
具体的には、

 1.Visual Basic Editor を開きます。
 2.プロジェクトボックス(左上のペイン)の、「ThisWorkbook」という部分を
   ダブルクリックします。
 3.右側のペインにウインドウが開いたら、ふたつ並んだコンボボックスの
   左側で「Workbook」を選択し、右側で「BeforeSave」を選択します。
 4.Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)

   End Sub
   の間に、コードを記述します。

これで、セーブ直前に実行されるマクロができあがります。

投稿日時 - 2002-12-24 11:49:08

お礼

早速ありがとうございました。完璧です!
それで「保存」後に実行したい場合は、

保存前に実行するマクロを記述後、次の行に

Application.OnTime Now, "保存後のマクロ"

でいいんですよね?

投稿日時 - 2002-12-24 13:40:15

ANo.1

このQ&Aは役に立ちましたか?

4人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.2

初めまして。

Workbooks_BeforeCloseイベントを使えばブックが終了した時にマクロが走ります。
VBE画面のThisWorkbookをダブルクリックして開いたモジュールの右側の部分に
Private sub Workbooks_BeforeCloseと記述すれば下側にEnd Subが自動で表示されますので、その間に実行したいマクロを記述します。

お試しになってみて下さい。

投稿日時 - 2002-12-24 11:53:08

お礼

早速ありがとうございました。
作成中のシートは改変防止のため終了時に変更を保存しない設定にしているので、BeforeCloseでは多分だめだと思います。(試してみませんでしたが)
でもありがとうございました。

投稿日時 - 2002-12-24 13:43:41

あなたにオススメの質問