AccessのAutoExecマクロの作り方をお探しですね。
広告
Accessで起動時に自動実行!AutoExecマクロの作り方と使い方
Accessで業務用のデータベースを作っていると、「ファイルを開いたら自動でメインメニューを表示したい」「起動したらすぐに初期設定を実行したい」と思うことがありますよね。
そんなときに便利なのが、**AutoExec(オートエグゼック)マクロ**です。
この記事では、AutoExecマクロの基本から作り方、開発中に自動実行を止める方法、運用時の注意点まで、わかりやすく解説します。
1. AutoExecマクロって何?起動時に自動で動く便利な仕組み
AutoExecマクロは、Accessのデータベースファイルを開いたときに**自動的に実行される特別なマクロ**です。
普通のマクロはボタンを押したり、フォームのイベントに設定したりして実行しますが、AutoExecマクロは「AutoExec」という名前で保存するだけで、ファイルを開いた瞬間に勝手に動いてくれます。
たとえば、こんなことができます。
– メインメニュー画面を自動で開く
– ウィンドウを最大化する
– 「おはようございます」などのメッセージを表示する
– 不要な一時データを削除するクエリを実行する
Accessには「オプション」から起動時に表示するフォームを指定する機能もありますが、これは1つのフォームを開くだけのシンプルな使い方に向いています。
一方、AutoExecマクロなら**複数の処理を順番に実行できる**ので、もっと柔軟な起動処理が作れます。
「まず古いデータを削除してから、メニュー画面を開く」といった流れも簡単に設定できます。
AutoExecマクロの大きなメリットは、**VBAコードを書かなくても自動化できる**点です。
Accessのマクロは画面上でアクションを選んで設定するだけなので、プログラミングに慣れていない人でも扱いやすいんです。
もちろん、複雑な処理にはVBAの方が向いていますが、社内ツールの起動処理くらいなら、まずはAutoExecマクロから始めるのがおすすめです。
実務では、「どこから操作すればいいかわからない」という利用者の迷いをなくすためにも役立ちます。
Accessを開いた瞬間にテーブルやクエリの一覧が見えてしまうと、慣れていない人が間違って大事なデータを触ってしまうかもしれません。
起動時にメニュー画面やログイン画面を自動表示すれば、操作の入口が統一されて、**使いやすさと安全性が両方アップ**します。
2. AutoExecマクロの作り方【手順を詳しく解説】
AutoExecマクロの作り方は、普通のマクロを作る手順とほとんど同じです。
ポイントは、保存するときの名前を必ず**「AutoExec」にすること**。
この名前がAccessにとって特別な意味を持っていて、起動時に自動実行される条件になります。
全角文字や余計なスペースは入れず、半角英字で「AutoExec」と入力しましょう。
基本的な作成手順
1. Accessを開いて、「作成」タブから「マクロ」をクリック
2. マクロビルダー画面で、起動時に実行したいアクションを上から順番に追加
3. 必要に応じて、フォーム名やクエリ名などの設定を入力
4. 保存するときのマクロ名を「**AutoExec**」にして保存
5. いったんAccessを閉じて、もう一度開いて自動実行されるか確認
たとえば、「起動時にAccessの画面を最大化してから、メインメニューを表示したい」という場合は、最初に「最大化」(または「ウィンドウの最大化」)のアクションを設定して、その次に「フォームを開く」アクションでメニュー用のフォームを指定します。
マクロは**上から下へ順番に実行される**ので、処理の並び順がとても大事です。
「フォームを開いてから最大化」なのか、「最大化してからフォームを開く」なのかで、画面の見え方が変わることもあります。
更新クエリを実行するときは要注意
起動時に更新クエリや削除クエリなどの**アクションクエリ**を実行する場合は注意が必要です。
データを変更する処理をAutoExecに入れると、ファイルを開くたびに自動でデータが書き換わります。
便利な反面、条件設定を間違えると必要なデータまで削除・更新してしまう危険があります。
実際に使う前には**必ずバックアップを取って**、テスト用のコピーで動作確認してから本番ファイルに反映するようにしましょう。
ちなみに、起動時にフォームを開くだけなら、Accessの「カレントデータベース」設定にある「フォームの表示」を使う方法もあります。
ただ、この設定とAutoExecマクロを両方使う場合は、どちらで何をするのか整理しておくと混乱しません。
「シンプルなフォーム表示はオプション設定、複数処理の自動化はAutoExecマクロ」というように役割分担すると管理しやすくなります。
3. 【開発時に便利】Shift起動でAutoExecを無効化する方法
AutoExecマクロを設定すると、Accessファイルを開くたびに自動処理が実行されます。
利用者にとっては便利ですが、開発者や管理者が修正作業をしたいときには困ることがあります。
たとえば、起動直後にメニュー画面だけが表示されて、ナビゲーションウィンドウ(テーブルやフォームの一覧)が見えない設定になっていると、デザインを編集しづらくなります。
さらに、AutoExecマクロの中にエラーがあると、起動するたびにエラーが出て作業に入れない…なんてことも。
Shiftキーを押しながら開くと自動実行を止められる
そんなときに使うのが、**Shiftキーを押しながらAccessを起動する方法**です。
Accessには、起動時の設定やAutoExecマクロの実行を一時的にスキップする「バイパス」という仕組みがあります。
やり方はとても簡単。
1. Accessファイルをダブルクリックする**前から**Shiftキーを押す
2. Accessの画面が完全に表示されるまでShiftキーを押し続ける
3. これだけで、AutoExecマクロが実行されずに開ける
パスワード付きのAccessファイルの場合は、タイミングに少し注意が必要です。
ファイルを開いてパスワード入力画面が出たら、パスワードを入力して、**OKを押す直前からShiftキーを押し続けます**。
そのままデータベースが開き切るまでShiftキーを離さないようにしましょう。
環境によって動きが違うこともあるので、管理者は事前に自分の環境で試しておくと安心です。
Shift起動を使うと、AutoExecマクロだけでなく、起動時に指定したフォーム表示や一部の起動オプションも無効化して開けます。
ナビゲーションウィンドウを非表示にしているデータベースでも、開発用の状態でメンテナンスしやすくなるわけです。
**AutoExecマクロを作るときは、作る方法だけでなく、止める方法もセットで覚えておくことが大切です。
**自動化は便利ですが、メンテナンスできない状態にしてしまうと、後で困ることになります。
ちなみに、Excel VBAなど外部のアプリケーションからAccessファイルを開く場合、AutoExecが実行されることがあります。
これを確実に無効化する方法は限られていて、一般的にはAccess側に「特定の条件ならAutoExec処理を終了する仕組み」を用意するなどの工夫が必要です。
単にテーブルのデータを読み書きしたいだけなら、ADO接続で済むケースもありますが、Access内のフォームやプロシージャを操作したい場合は、AutoExecとの関係を考えて設計する必要があります。
4. 実務での活用例と安全に運用するためのポイント
AutoExecマクロは、単にメニュー画面を開くだけでなく、業務システムの**起動準備**にも使えます。
こんな活用例があります
– ログインユーザー名を記録する
– 前回終了時の一時データを削除する
– リンクテーブルの接続確認を行う
– 日付に応じたメッセージを表示する
利用者から見ると「Accessファイルを開くだけ」で使い始められるので、操作説明を減らせて、業務の入口を統一しやすくなります。
起動が遅くならないように注意
一方で、起動時に重い処理を詰め込みすぎると、ファイルを開くたびに待ち時間が長くなってしまいます。
特にネットワーク上の共有フォルダにあるAccessファイルや、外部データベースとリンクしている環境では、起動処理が遅く感じられることがあります。
AutoExecに入れる処理は**「起動時に絶対必要なもの」に絞る**のがコツです。
後からでもいい集計や同期処理は、ボタン操作や別のタイミングに分けると、利用者のストレスを減らせます。
セキュリティ面の注意点
セキュリティ面では、**Shift起動を誰でも使える状態にしていいか**を考える必要があります。
開発中はShift起動が便利ですが、運用段階で一般ユーザーがShift起動できると、ナビゲーションウィンドウやテーブルに直接アクセスされる可能性があります。
Accessの起動制限だけで完璧なセキュリティを作るのは難しいので、次のような対策も合わせて考えましょう。
– ファイルの保存場所のアクセス権を設定する
– こまめにバックアップを取る
– データベースを分割する(フロントエンドとバックエンド)
– フォーム経由でしか操作できないように制限する
もっと厳密に運用したい場合は、VBAで**AllowBypassKey**プロパティをFalseに設定して、Shiftキーによるバイパスを無効化する方法もあります。
ただし、この設定をすると**開発者自身もShift起動で入れなくなる**ので、解除用の手順を用意せずに設定するのは危険です。
管理者だけが解除できる仕組みや、必ず編集用のバックアップファイルを残しておく運用を前提にしましょう。
マクロがブロックされることもある
また、AccessのマクロやVBAは、セキュリティ設定によってブロックされることがあります。
ファイルを開いたときに「アクティブなコンテンツはブロックされました」などの警告が表示される場合、AutoExecマクロが実行されないことがあります。
社内で配布する場合は、次のような準備をしておくと安心です。
– 信頼できる場所に保存する
– 配布前に動作確認を行う
– マクロが無効な場合の案内を用意する
まとめ
AutoExecマクロは、Access起動時に自動で処理を実行するための便利な機能です。
作成自体は「マクロを作ってAutoExecという名前で保存する」だけなので簡単ですが、実務で安全に使うには、次のポイントを押さえておきましょう。
– 処理の順番を考える
– データ更新のリスクに注意する
– Shift起動で無効化できることを知っておく
– 運用後のセキュリティも考慮する
起動時の自動化とメンテナンス方法をセットで設計すれば、**利用者にとって使いやすく、管理者にとっても扱いやすいAccessデータベース**が作れます。
ぜひ試してみてください!
広告
