• ベストアンサー

エクセルを閉じる時のVBAのプログラム

エクセルを閉じる時に実行するVBAのプログラムを記述する時は、 どのように記述すれば良いのでしょうか?

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

  • ベストアンサー
  • eden3616
  • ベストアンサー率65% (267/405)
回答No.1

Thisworkbookモジュールの「Workbook_BeforeClose」イベントに記述すると、 ブックを閉じる直前に実行されます。 蛇足ですが・・・ 処理の中で以下を追加すると、ブックを閉じる処理を停止することが出来ます。 Cancel = True

参考URL:
http://siroutoex.web.fc2.com/vba8/vba_8_2.htm

その他の回答 (1)

  • eden3616
  • ベストアンサー率65% (267/405)
回答No.2

>エクセルを閉じる時に実行するVBAのプログラムを記述する時は、 >どのように記述すれば良いのでしょうか? No1です。 ブックではなく、エクセル本体(プロセス)終了時に実行したいということであれば そのようなイベントはありません。 そもそも、マクロはブック内に記述されますので、ブックが起動していないエクセルにコードを記述する方法がありませんので、VBAではできません。 他のプログラムでエクセルプロセスを監視することになります。 ですが、 http://office.microsoft.com/ja-jp/excel-help/HP010197489.aspx XLSTARTにNo1の方法でマクロを記述し、非表示に設定した状態で保存すれば エクセルの起動時に毎回非表示で該当ブックが開かれますので エクセルの終了→非表示のブックの終了操作→Workbook_BeforeCloseの実行→非表示ブックの終了 となり、お望みの動作ができるのではないでしょうか。 表示タブの非表示リストに表示されてしまいますので、表示したくない場合は上記方法の保存時に エクセルアドインファイル(xlam)として保存し、エクセルオプションのアドイン設定から有効化してください。

関連するQ&A

  • エクセルVBAが対応できるプログラムの大きさ

     エクセルVBAでプログラムの行数が2000行近くになるとプロシージャが大きすぎますとなり、実行できません。これには対処する方法はあるでしょうか。また、エクセル2013ではもっと大きなプロシージャにも対応しているのでしょうか。  よろしくお願いいたします。

  • エクセルVBA

    同じエクセルVBAで組んだプログラムなのですが、 修正した時 実行できるPCと「型が違います」とエラーが でるPCがあります。 エクセルの設定等で何かが違うのでしょうか?

  • EXCEL VBA 自動でプログラムの実行できますか

    EXCELのVBAでタイマー等を使用して一定の時間がきたら プログラムを実行させたいのですが、教えて下さい。 宜しくお願いします。

  • EXCEL VBAのModuleの使い方

    EXCEL VBAの初心者です。 VBAでプログラムを記述する時に、Module1、Module2とかの 使い分けに何かルールはあるのでしょうか。 たとえばできるだけModule1にまとめて記述した方がいいとか、 機能や種類別にいくつかに分けた方がいいとか。 あなたの使い方でも構いません。教えてください。

  • エクセルのマクロとVBAについて

    まだあまり多用していないのですが、エクセルでは使っていくアイコンを指定することで(それを利用することで)、マクロを組みそれがエクセルのVBAで記述されるということですが、その逆エクセルのVBAで記述したプログラムを動作に対応したアイコン等の流れで示すことは出来るのでしょうか?もしあったらどのような方法でしょう?

  • エクセルのVBAについて

    エクセルのVBAについて教えて下さい。 エクセルのVBAでプログラムを組んでいるのですが、一つわからないことがあるのです。 マクロが実行(オープン)されるファイル名(ファイルパス)をVBAで取得するためにはどうすればいいでしょうか? たとえば、マクロが実行されるファイルがC:\テスト.xlsならば "C:\テスト.xls"を取得したいと考えています。 どなたかご教授お願い致します。 宜しくお願い致します。

  • 別のプログラムとして開いたエクセルをVBAコードでアクティブにする方法について

    すいません、エクセルVBAのことで質問があります。 使っているのはExcel2000です。 1 エクセルブック"A"を開く 2 当方で使用している業務用のアプリケーションを使いデータをエクセル形式で搬出   ⇒"AAA"とは別のエクセルプログラムとして"BooK1"が開かれる このとき、ブック"A"のVBAコードに Workbooks("Book1").Activate と記載しても実行時エラーとなってしまいます。 別のエクセルプログラムで開いたブックを指定してアクティブにするにはどのようなVBAコードを記載したらよろしいのでしょうか。 同じプログラムとして開ければ問題ないのでしょうが、 当方で使っているアプリケーションですと、データを搬出するときには必ず別のプログラムとしてブックが開かれてしまう模様で どうにも回避できません。 どうぞよろしくご教示願います。

  • Excel VBA から外部プログラムを実行し結果を利用するには?

    Excel VBA から外部プログラム(例えば、Perl)を実行し、 その実行結果をVBAプログラム中で利用する方法を教えて ください。 より具体的にやりたいことを書きますと、 Perlでインターネット上の情報(数字)を取ってきて、 その情報をVBAで利用したいのですが。。。 よろしくお願いします。

  • Excelに埋め込んだVBAのプログラムが消えた。

    Excelに埋め込んだVBAのプログラムが消えてしまいました。 何か復旧する方法はありませんでしょうか? 心当たりは何もないのですが、原因はありますでしょうか?

  • エクセルVBAでUserFormを起動した時

    エクセルVBAでUserFormを起動した時に自動的に実行される動作を記述したいのですが、 どうすればよいでしょうか? Private Sub UserForm1_Load() End Sub だとだめでしょうか?

専門家に質問してみよう