• ベストアンサー

access 終了時に「test」というプロシージャーを実行したい。

ツール→「起動時の処理」というのはあるのですが 終了時にマクロを実行したい場合はどうすればいいのでしょうか? エクセルで言う「Workbook_BeforeClose」みたいなことはできないのでしょうか? よろしくお願いします。

  • xcmcxm
  • お礼率100% (320/320)

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

  • ベストアンサー
  • DexMachina
  • ベストアンサー率73% (1287/1744)
回答No.1

> エクセルで言う「Workbook_BeforeClose」みたいなことはできないのでしょうか? 「Accessのデータベースウィンドウが閉じられたとき」というのは ない(はず)ですが、「起動時の設定」か「Autoexec」マクロで予め 特定フォームを開くようにしておけば、そのフォームの「読み込み 解除時」イベントや「閉じる時」イベントにマクロかVBAを実行 させることで、同様の処理を行えます。 (フォームをデザインビューで開いた後、何もないところダブル  クリックするなどしてフォームのプロパティシートを開くと、  「イベント」タブにそれぞれのイベントがあります)ので、  そこに当該マクロを指定するか、ビルダを起動するなどして  イベントプロシージャを記述します) フォームとしては、メニュー選択用のフォームがあるならその フォームでもいいですし、終了時の処理専用のフォームを作成して、 起動時に非表示で開く、という方法もあります。 (要は、そのAccessファイルを終了するまで、閉じられることが  ないフォームであればOk、と)

xcmcxm
質問者

お礼

なるほど。 フォームの終了=アクセスの終了とするシステムを設計し、「閉じる時」にて処理すればいいわけですね。 ありがとうございます。

関連するQ&A

  • Excelの終了処理について

    Excel がMDIで複数のワークブックが動作しています。 そして、ExcelのXマークを押して終了する場合の処理についてです。 いま、aaa.xls とbbb.xlsが同時に起動しています。ExcelのXマークで全部閉じるボタンを押します。 aaa.xls のWorkbook_BeforeClose で終了処理をします。 その後bbb.xls(マクロなし)で、保存しますかのダイアログがでますが そこで、キャンセルを行った場合、aaa.xlsは終了せずに残ってしまいます。 すでに、aaa.xlsは終了処理で、メニューの戻しやデータのクリアがおこなわれているのでその後、整合性が合わなくなります。 Excelの終了処理は、どのような手順を踏めばよいのでしょうか。 基本的な質問で申し訳ありませんが、宜しくお願いします。

  • シャットダウン時のExcel強制終了は?

    Excel上のシートを介して外部アプリとデータをやり取りしています。 利用者に意識させずバックグラウンドで動作しているような感じにするため、 Excelを見えないように起動しています。 パソコンをシャットダウンする際、 このExcelについて「変更を保存しますか?」メッセージが表示され、 シャットダウン処理がそこで止まってしまいます。 このメッセージなしに強制的に終了させるにはどうすればよいでしょうか。 shutdown.exe を使う方法がありそうですが、 できれば通常の手順でシャットダウンさせたいと思います。 VBAで ActiveWorkbook.Saved = True とする方法も試しましたが、 Excelを[X]ボタンで終了させる際は Workbook_BeforeClose イベント中で行えば良いですが、 シャットダウン時はこのイベントは来ないようです。 「変更を保存しますか?」は Workbook_BeforeClose イベントより後、 Workbook_Deactivate イベントより前に来るようです。 このメッセージが表示されるタイミングのイベントが分かれば、 そのイベントの中で ActiveWorkbook.Saved = True すればいいのでしょうが...。 シャットダウン処理の工夫、Excel 側の工夫、どちらでも良いのですが、 強制終了させる方法をご教授ください。 (あるいは、方法がない、という情報でもよいので...。) どうぞよろしくお願いします。

  • Access終了時にマクロまたはVBAの実行したい

    Access初心者です。 Accessを起動するときにマクロを実行する方法として「autoexec」がありますが、終了時にマクロまたはVBAを実行する方法がありますか教えてください。(Access終了時に自動的にバックアップを取るようにしたいため。)

  • エクセル マクロで自動実行と終了について

    エクセルで作ったマクロを自動実行・自動保存・自動終了したいので、下記のような 記述のマクロをつくり、Windowsのタスク処理で1回/日実行させようとしています。 ----<ここから>------------------------------------ Sub Auto_Open()    :   :   Workbooks("ekuseru.xls").Close SaveChanges:=True End Sub ----<ここまで>------------------------------------ 質問その1  マクロを編集したい場合はどうすればいいのでしょう?  そのBookを開くとマクロが動き出し、保存した上で終了してしまいます。  マクロ無効でBookを開くと「ツール」⇒「マクロ」⇒「マクロ」で「編集」はクリッ  クできないようになってます。 質問その2  マクロが終了するとき、Bookは閉じますがエクセル自体は閉じません。  (意味通じますか?)  エクセル自体を閉じるにはマクロの記述はどうすればいいのでしょう? 以上、よろしくお願いします。

  • Excel VBA 終了時の処理

    Excelを終了時にフルスクリーン(リボンなどが非表示の状態)から解除するコードを書きたいのです。 Private Sub Workbook_BeforeClose(Cancel As Boolean) Application.DisplayFullScreen = False 'フルスクリーン化解除 End Sub というコードを書きましたが、Excel自体を×ボタンでクローズした場合は正常に動きますが、 Excelを起動したままPCをシャットダウンすると解除されません。 次回Excelファイルを開くときにはフルスクリーンで出てきてしまいます。 シャットダウン時には、Excelも勝手にクローズされ、その際にマクロが動くものだと思っていましたが... これを回避するコードなどありましたらご教授ください。 環境:windows7 Excel2010 (2013でも動くようにしたいです)

  • Excelのマクロが実行されない

    Excelを立ち上げ、VBEでThisWorkbookに以下のマクロを記述します。 Dim WithEvents a As Workbook, WithEvents b As Workbook, WithEvents c As Workbook, WithEvents d As Workbook Private Sub Workbook_Open() Stop End Sub ファイルを保存してから起動し、マクロを有効にすると Stop で停止します。 ここで一旦 Stop を削除してから再度 Stop を挿入してから保存します。 再びこのファイルを起動し、マクロを有効にしても Stop で停止しません。 今回は簡単のため Stop にしていますが、実際には起動時の処理が実行されないため困っています。 OSはWindows7,Excelは2007です。

  • ACCESS2000の終了時に自動で実行

    ACCESS2000を使っています、 データベースを閉じる時にあるマクロを自動実行してからデータベースを閉じて終了したいのですがどんなマクロを作ればよいでしょうか、 初心者ですがよろしくおねがします。

  • エクセル・ブック共有のファイル終了時に

    エクセルのVBA、万年初心者のものです。m(__)m エクセルのファイルをネットワーク上で「ブックの共有」で使いたいと思っているのですが、「ブックの共有」をオンにしていると、終了時に毎回「この場所に○○.xlsという名前のファイルが既にあります。置き換えますか?」と出てきます。 ファイル自体はマクロを有効にしていて、毎回、置き換える必要がないので「いいえ」しか選ばないので、なんとか、このメッセージをださないようにしたいのですが。 ThisWorkbook のPrivate Sub Workbook_BeforeClose の中に、Application.DisplayAlerts = False を入れてみたりしましたが、うまくいきません。 なにかいいメソッドがないでしょうか?

  • Excel起動時にマクロを実行させない

     皆さんこんにちは。宜しくお願いしますm(_ _)m。  Excelでマクロを含んだファイルを作成していたのですが、急に「不正な処理」でファイルそのものが起動できなくなってしまいました。  どうやら、Excel起動時に実行されるマクロに問題が有るようなので、実行を中止したいのです。  ショートカットキーがあったと思うのですが、どうしても思い出せません。助けてくださいm(_ _)m!

  • アクセスからエクセルのプロシージャーを実行する際の

    アクセスからエクセルのプロシージャーを実行する際のエラーです。 おはようございます。長文ですがお許しください。 http://www.geocities.jp/cbc_vbnet/tips/excll.html(03.プロシージャの作成) を参考にアクセスからエクセルのプロシージャーを実行させてるのですがエラーになります。 エクセルファイルのパス→C:\Users\User\Desktop\a.xlsm エクセルファイルに入っているプロシージャ→test() *********************エクセルの標準モジュール********************* Sub test() MsgBox "" End Sub *********************アクセスのイベント********************* Private Sub 更新_Click() Dim App As Excel.Application ’参照設定済み Dim MyFileName As String Dim res As Variant MyFileName = "C:\Users\User\Desktop\a.xlsm" Set App = Excel.Application res = App.Application.Run(MyFileName & "!" & "test") End Sub このアクセスのイベントを実行すると、 「実行時エラー1004 マクロ'C:\Users\User\Desktop\a.xlsm!test'を実行できません。 このブックでマクロが使用できないか、また全てのマクロが無効になっている可能性があります。」 となります。 エクセルのマクロの設定は、「全てのマクロを有効にする」にしてあります。 a.xlsmはダブルクリックすれば普通に開けるし、testも問題なく実行できます。 そして、このアクセスのイベントを実行した後は、エクセルファイルが開けなくなります。 一瞬開くんですが、すぐ閉じてしまいます。 タスクマネージャーのプロセスからエクセルのアプリケーションを強制終了させると 再度開けるようになりますが、画像のように変なドキュメントの回復が出ます。 とりあえず、エクセルが開けなくなることは置いといて、 アクセスからエクセルのプロシージャーを実行する方法を教えてください。 当方オフィス2007です。ご回答よろしくお願いします。

専門家に質問してみよう