• ベストアンサー

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

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

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

  • ベストアンサー
  • vbalab
  • ベストアンサー率48% (24/50)
回答No.1

保存時に自動的にマクロを実行するには、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    の間に、コードを記述します。 これで、セーブ直前に実行されるマクロができあがります。

shishishishi
質問者

お礼

早速ありがとうございました。完璧です! それで「保存」後に実行したい場合は、 保存前に実行するマクロを記述後、次の行に Application.OnTime Now, "保存後のマクロ" でいいんですよね?

その他の回答 (1)

  • vbafriend
  • ベストアンサー率47% (17/36)
回答No.2

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

shishishishi
質問者

お礼

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

関連するQ&A