AccessでAutoExecマクロの作り方をお探しですね。
広告
Accessを開いた瞬間に自動で処理が走る!「AutoExecマクロ」の作り方と無効化テクニック
Microsoft Accessでデータベースを作っていると、「ファイルを開いたら自動的にメニュー画面を表示したい」とか「起動時に裏で初期設定を済ませておきたい」といったことがよくあります。
そんなときに便利なのが「AutoExec(オートエグゼック)マクロ」という機能です。
この記事では、Access起動時に自動で処理を実行するAutoExecマクロの作り方から、開発中に「ちょっと待った!」と止めたいときに使える「Shiftキーを押しながら起動する裏ワザ」まで、わかりやすく解説していきます。
AutoExecマクロって何?Access起動時に自動で動く便利な仕組み
AutoExecマクロというのは、Accessのデータベースファイル(.accdbなど)を開いた瞬間に、自動的に実行される特別なマクロのことです。
普通のマクロと違うのは、名前を「AutoExec」にするだけで、ファイルを開いたときに勝手に動いてくれるという点。
ユーザーが何もボタンを押さなくても、あらかじめ設定しておいた処理が自動的に走ってくれるんです。
Accessには「起動時のオプション」という設定があって、そこで「最初に表示するフォーム」を一つだけ指定することはできます。
でも、それだけだと「メニュー画面を開く前に古いデータを削除する」とか「最新情報を取得するクエリを実行する」とか「ウィンドウを最大化する」といった複数の処理を組み合わせることができません。
AutoExecマクロなら、いくつもの処理を順番に並べて実行できるので、かなり自由度の高いスタートアップ処理が作れるんです。
VBA(プログラミング言語)を使っても同じようなことはできますが、マクロならプログラミングの知識がなくても直感的に設定できるのが大きなメリット。
システムを使う人にとっても、ファイルを開くだけで必要な画面が自動的に表示されて、すぐに仕事が始められるのでとても便利です。
AutoExecマクロの作り方を順番に解説
AutoExecマクロの作り方はとってもシンプルで、普通のマクロを作る手順とほぼ同じです。
まず、Accessの画面上部にある「作成」タブをクリックして、「マクロとコード」のところにある「マクロ」ボタンを押します。
すると、マクロを作る専用の画面(マクロビルダー)が開くので、ここで起動時にやりたい処理を上から順番に設定していきます。
よく使われる処理としては、「ウィンドウの最大化」「メッセージボックスの表示」「フォームを開く」などがあります。
たとえば、ファイルを開いたときに画面を全画面表示にしてからメインメニューを出したい場合は、最初に「ウィンドウの最大化」を選んで、次に「フォームを開く」で表示したいフォームの名前(例:メインメニュー)を指定します。
マクロは上から下へ順番に実行されるので、処理の順番を間違えないように気をつけましょう。
**手順のまとめ**
– 「作成」タブから「マクロ」を選んでマクロビルダーを開く
– 起動時に実行したい処理を上から順番に設定する
– **保存するときに名前を必ず「AutoExec」にする(ここ超重要!)**
処理の設定が終わったら、マクロを保存します。
ここで一番大事なのが保存するときの名前で、必ず半角で「AutoExec」と入力してください。
大文字・小文字はそこまで気にしなくても大丈夫ですが、「AutoExec」と書くのが一般的です。
この名前で保存した瞬間、Accessは「これは起動時用のマクロだな」と認識して、次にファイルを開いたときから自動的に処理が走るようになります。
困ったときの救世主!Shiftキーで自動実行を止める方法
AutoExecマクロを設定すると、データベースを開くたびに自動的に処理が実行されるようになります。
でも、これが開発者や管理者にとって困る場面もあるんです。
たとえば、起動と同時に全画面表示になって他のメニューが操作できなくなると、後からフォームのデザインを変更したり、新しいテーブルを追加したりする画面(ナビゲーションペイン)が見られなくなってしまいます。
「自分で作った自動処理のせいで自分が困る」という状況を防ぐために用意されているのが、Shiftキーを使った起動の無効化テクニックです。
やり方はめちゃくちゃ簡単。
Accessのファイルをダブルクリックして開くとき、キーボードの「Shiftキー」をずっと押しっぱなしにするだけです。
ファイルを開く瞬間から、Accessの画面が完全に立ち上がって、左側にナビゲーションペインが表示されるまでShiftキーを押し続けてください。
こうすると、AccessはAutoExecマクロの実行や、オプションで設定した起動時のフォーム表示などをすべてスキップして、素の状態でファイルを開いてくれます。
データベースの修正やメンテナンスをするときは、このShiftキー起動が必須テクニックになります。
もしAutoExecマクロの中身にエラーがあって、起動するたびにエラーメッセージが出て操作できなくなっても、この方法を知っていれば落ち着いてマクロを修正できます。
Accessで自動処理を作るときは、「自動化の仕組みを作ること」と「それを安全に解除してメンテナンスする方法を知っておくこと」はセットで覚えておきましょう。
実務での活用例とセキュリティ対策も忘れずに
実際の仕事の現場では、AutoExecマクロは画面表示だけでなく、裏側でいろんな初期設定を走らせるために使われています。
たとえば、複数の人が使う社内データベースなら、起動時に誰がアクセスしたかをログとして記録したり、前日の古い一時データを削除するクエリを実行したり、外部の最新データと自動で同期したりと、ユーザーには見えないところでデータベースを最適な状態に整える役割を果たしています。
ただし、Shiftキーで無効化できる機能は開発者にとっては便利ですが、運用段階では「一般ユーザーにShift起動されてシステムを勝手に触られるリスク」を考えないといけません。
せっかくAutoExecマクロで業務用のメニュー画面しか触れないようにしても、ちょっとAccessの知識がある人がShiftキーを押しながら開けば、すべてのテーブルやデータにアクセスできてしまいます。
この問題を解決するには、VBAを使って「AllowBypassKey(バイパスキー許可)」というプロパティを「False(無効)」に設定する高度なテクニックがあります。
これを設定すると、Shiftキーを押しても無効化が効かなくなって、強制的にAutoExecマクロが実行される頑丈なシステムになります。
ただし、開発者自身もShift起動ができなくなるので、管理者だけが特別なパスワードで設定を戻せる裏口を用意しておくなど、より慎重な設計が必要になります。
まとめ
AutoExecマクロは使いこなせばとても便利な機能ですが、「作る」と「止める」の両方の知識があってこそ安全に運用できます。
ぜひこの記事を参考に、快適なAccessデータベースを作ってみてください!
広告
