Accessでデータベースを作りこんでいくと、ファイルを起動した際に特定の処理をさせたいといったニーズがでてきます。例えば、別のデータベースとリンクをかけたり、起動時に特定のフォームを開くようにしたり等です。こう言った場合に、AutoExec マクロを活用できます。
AutoExec マクロは、単に AutoExec という名前が付けられたマクロですが、 データベースの起動時に、Access で他のマクロや VBA コードが実行される前に、AutoExec マクロが実行されます。
データベースを起動したときに実行するアクションを含むマクロを既に作成している場合、マクロの名前を AutoExec に変更するだけで、AutoExecマクロは次にデータベースを開いたときに自動で実行されます。
それでは、早速AutoExecマクロを使った処理を作りこんでいきましょう。
今回は、Accessファイルを開いた際にナビゲーションウインドウを閉じ、起動時専用のフォームを開くように設定をしていきます。
サンプルフォームの作成
まずは、Accessを起動した際に開くフォームとして「F_起動時」フォームを図1のように作成します。
ここで、作成したフォームを起動時に自動で画面中央に表示し、かつ、移動ボタンなどの不要な表示をさせないように、プロパティ設定を以下のとおりにします。
【プロパティ設定】
・自動中央寄せ: はい
・レコードセレクタ: いいえ
・移動ボタン: いいえ
・スクロールバー: なし
・最小化/最大化ボタン: なし
これで、Accessファイルを開いた際に自動で開くフォームを準備できました。
AutoExecマクロの作成
AutoExecマクロの作成手順は次のとおりです。
[作成] タブの [マクロとコード] グループで、[マクロ] をクリックします(図2参照)。
マクロビルダーが立ち上がるため、最上部にあるドロップダウンリストで、実行するアクションを選びます。ここでは、「メニューコマンドの実行」→「コマンド ウィンドウを表示しない」を選択し、次のステップで、「プロシージャの実行」→「プロシージャ名 AutoExec()」とします(図3参照)。
この際、目的のアクションを見つけることができない場合は、[デザイン] タブの [表示/非表示] グループで、使用する、[すべてのアクションを表示] が選択されていることを確認します。 これにより使用できるアクションのリストが展開されますが、リストにはデータベースが信頼されている場合にだけ実行されるアクションも含まれますので注意してください。
以上で、設定は完了となりますので、[名前を付けて保存] ダイアログ ボックスで「AutoExec」と入力し、マクロ ビルダーを閉じます。ここで作成した「AutoExec」マクロは、次にデータベースを開いたときに実行されます。
VBAによる実装
「AutoExec」マクロでは、プロシージャの実行として「AutoExec()」が設定されていますので、標準モジュールを作成し、次のコードを追加します。
Function AutoExec() DoCmd.OpenForm "F_起動時" End Function
実装したコードの内容は単純で、先に作成した「F_起動時」フォームを開く処理を記載しています。なお、AutoExecマクロで使用するプロシージャは「Function」としてください。
今回の例では、フォームを開くだけですが、複雑な処理をここに記載することで、Accessファイルが立ち上がった段階で、これら処理をしてくれることになります。
さて、ここまでで一通りの準備ができましたので、次に実際の動作を確認しましょう。
AutoExecマクロの動作確認
これまで作成した内容で、Accessファイル起動時にナビゲーションウインドウが閉じた状態で、かつ、「F_起動時」フォームが画面中央に表示されるかを確認するため、いったんAccessファイルを閉じ、改めて開いてみましょう。
すると、図4に示すように「F_起動時」フォームだけが開いた状態になっていると思います。
このように、Accessファイルを開いた際に、AutoExecマクロによる処理が実行されたことを確認できました。
まとめ
今回は、Accessファイルを起動した際に実行されるマクロとして、「AutoExec」マクロの使用方法を紹介しました。設定ファイル等の読込、別データベースとのリンク等をする際には重宝すると思いますので、是非活用してみてください。
また、Accessマクロの使用方法は以下の書籍が参考になると思いますので、お手元に用意されてみてはいかがでしょうか。
コメント