Accessで行う多くの操作は「自動化」することができます。自動化とは文字通り、手動ではなく、Accessが自動で指定した動作を行ってくれるもので、業務用ツールなどを作成する場合の必須テクニックです。
Accessで自動化を実現する方法には、大きく分けて「マクロ」と「VBA(Visual Basic for Applications)」の2つがあります。
この記事では、「マクロ」に関する基本的事項と、簡単な自動化実装例についてご紹介していきます。
Accessにおける自動化とは?
まずはAccessにおける自動化とはどういったものか説明します。分かりやすい例として「フォームを開く」場合の手動と自動化の流れを説明します。
手動の場合
手動で任意のフォームを開く場合は、基本的に次の手順で行います。
- ナビゲーションウインドウを表示させる(F11キーで表示)
- ナビゲーションウインドウから開きたいフォームを視認する
- 該当のフォームをダブルクリックする(または右クリックから「開く」)
どのような作業を行うにしても、「メニューの選択」から「対象オブジェクトの選択」といった動作は避けて通れないため、処理が複雑になればなるほど手間がかかります。
自動化の場合
【自動化例】
フォーム上に配置したコマンドボタンをクリックするだけで、フォームを開くことができます。イメージ的には下図のとおりです。

手動と自動化の比較
「フォームを開く」というシンプルな1アクションだけでは、それほど作業工程に大きな差を感じないかもしれません。しかし、マウスのワンクリックで目的の処理が実行されるというのは、想像以上に利便性を実感できるものです。
実務の現場では、この「ワンクリック」に対してさらにさまざまな処理を組み合わせ、複雑な自動化を実装することがよくあります。その効果は、まさに劇的といえるでしょう。
たとえば、所定の場所にあるテキストファイルを適切な形式でインポートし、インポートしたデータをクエリで整形し、それを別のフォームとして表示する――こうした一連の処理も、ボタンひとつで実行できます。

場合によっては、1時間かかっていた手作業がわずか1分で終わることもあります。こうした効率化を実現できるのが、マクロやVBAを活用した自動化の大きな強みです。
マクロとVBAの違い
記事冒頭で、自動化を実現する方法には2種類あると説明しましたが、マクロとVBAの主な違いを簡潔に説明します。
マクロとは
あらかじめ用意された操作をリストから選んで組み合わせることで、処理を自動化する仕組みです。プログラミングの知識がなくても自動化を設定することができます。フォームの操作やデータのインポート・エクスポートなど、よく使う処理を簡単に自動化できます。
- プログラミング不要で直感的に操作できる
- 基本的な処理の自動化に向いている
VBAとは
VBAは「Visual Basic for Applications」の略で、より高度な自動化やカスタマイズを実現できるプログラミング言語です。条件分岐、繰り返し処理、外部アプリケーションとの連携など、より凝った処理を行うのに適しています。
- 本格的なプログラミングが可能
- 複雑なロジックやエラーハンドリングに対応
- より自由度の高いカスタマイズができる
こちら↓の記事では、マクロとVBAの使い分けについて、詳しく解説しています。
マクロの基本事項
さて、ここからはAccessにおける自動化について、マクロを使ってどのように実現しているかを解説していきます。まずは、マクロの基本的な仕組みや使い方から見ていきましょう。
マクロの画面構成
まずは、マクロの設定画面を開きます。メニュー「作成」→「マクロ」をクリックします。

実行すると、以下の画面が表示されます。それぞれについて簡単に説明します。

① 新しいアクションの追加
マクロのメインというべきセクションです。このプルダウンリストを展開すると、マクロで指定できる全87種類の「アクション」を選択することができます。

自動化する作業の種類を選ぶってことですね!
こちらが展開したリストの一部です。

実際にアクションを選択して、マクロを実行する様子は、この記事の後半で解説します。
② アクション カタログ
「② アクション カタログ」では、全87種類のアクションがカテゴリごとに分類されて表示されます。このセクションから、目的のアクションを直接選択することも可能です。
カテゴリ分けされていることで、アクションを探しやすいという利点があるほか、各アクションの解説が表示されるのも大きなメリットです。アクションをクリックすると、画面下部にその動作内容が表示されるため、特に名前だけでは動作が想像しにくいアクションを選ぶ際に役立ちます。
③ メニュー
マクロに関する各種メニューが並んでいるセクションです。各メニュー項目について簡単に解説します。
- 実行…現在開いているマクロを実行します。マクロが正しく動くか確認したいときに使います。
- ステップイン…マクロを一行ずつ実行しながら動作確認できます。デバック処理として問題がある場所を見つけたいときに使用します。
- マクロをVisual Basicに変換…マクロをVBA(Visual Basic for Applications)コードに変換します。
- アクションの展開…現在カーソルがある一つのアクションの詳細を表示します。
- アクションの折りたたみ…現在カーソルがある一つのアクションの詳細を非表示にします。
- すべて展開…すべてのアクションの詳細を一気に表示します。中身を全部確認したいときに便利です。
- すべて折りたたみ…すべてのアクションの詳細を一気に非表示にします。マクロが長くなったときに使うと見やすくなります。
- アクションカタログ…画面左側にある「アクション一覧(If、OpenForm など)」のパネルを表示/非表示にします。誤って消したときはここで再表示できます。
- すべてのアクションを表示…通常は一部の基本アクションしか表示されませんが、これをオンにすると高度なアクション(条件付き実行、データ操作など)も使えるようになります。
よく使用されるアクション例
前述したとおり、自動化として設定できるアクションには多くの種類がありますが、その中からよく使用されるアクションを参考までにご紹介します。
| アクション名 | 説明 |
|---|---|
| フォームを開く | 指定したフォームを開く |
| フォームを閉じる | 指定したフォームを閉じる |
| メッセージボックス | メッセージボックスを表示する |
| クエリを開く | クエリを実行する(選択クエリであればデータ表示、アクションクエリであればデータ追加や更新を実行する) |
| IF | 条件によって処理を分岐させます |

上記の5つを駆使するだけでも、簡単な業務用ツールは作れちゃいます
簡単なマクロを作ってみよう
ある程度の基本を押さえたところで、「ボタンを押したらフォームが開く」というマクロを実際に作ってみましょう。
ステップ1 マクロを作成する
次の手順でマクロを作成します。
- Accessを開き、ナビゲーションウィンドウで「作成」タブ →「マクロ」を選択
- マクロ作成画面が開いたら、「アクションの追加」から「フォームを開く」を選択
- フォーム名に開きたいフォーム名等を指定
- 上書き保存して適宜の名前を付ける
No3の部分を詳しく解説します。各アクションには「引数」と呼ばれる設定項目があり、「フォームを開く」の場合は下図のような項目で構成されています。

| 引数名 | 説明 |
|---|---|
| フォーム名(必須) | 開きたいフォームの名前を指定します。 ※フォームは事前に作成しておく必要あり |
| ビュー | フォームをどの「表示形式」で開くかを指定します。 ・フォームビュー(通常の入力画面) ・データシートビュー(Excelのような一覧形式) ・印刷プレビュー ・その他 |
| フィルター名 | 既存の「フィルター」を指定して表示する方法。 ※ほぼ機能していない |
| Where条件式 | 特定の条件に合うデータだけを表示したいときに使います ※SQLのWHERE句のようなもの |
| データモード | フォームをどのように操作可能にするかを設定します。 ・追加:新規レコードのみ入力可 ・編集:既存レコードの編集可 ・読み取り専用:編集不可 |
| ウインドウモード | フォームの開き方(画面上の表示スタイル)を設定します。 ・標準:通常のウィンドウ表示 ・非表示:フォームを開くが、画面上には表示されません(内部的には開かれている) ・アイコン:フォームをアイコン状態(最小化)で開きます。開いてはいるが、ウィンドウの最小化エリアに格納された状態になります。 ・ダイアログ:ポップアップ形式で開き、ユーザーが閉じるまで他の操作ができません |

必須項目は「フォーム名」のみです。上記サンプルでは「F_社員基本情報マスタ」というフォームを指定しています。あとよく使うのは「Where条件」と「ウィンドウモード」などですが、今回は空欄のままとします。

こんな感じで他のアクションにも様々な設定項目があるんですね。色々試してみる必要ありそうです

そうそう、「+」をクリックすると新しいアクションを追加できるから、一つのマクロで様々なアクションを連続で実行することもできるんだよね!
ステップ2 ボタンにマクロを割り当てる
作成したマクロをそのまま実行することもできますが、通常はコマンドボタンなどの「イベント」に割り当てを行い、そのボタンをクリックするなどして実行します。
今回は「F_初期メニュー」というフォームのボタンに、先ほど作成したマクロを設定します。
1.対象コマンドボタンを右クリックし「プロパティ」を表示します。

2.イベントタブ「クリック時」のプルダウンリストを開けると、これまで作成したマクロが表示されていますので、割り当てるマクロを選択します。今回は「説明用_フォームを開く」を割り当てます。

これで設定完了です!「F_初期メニュー」をフォームビューに切り替えて、さっそくボタンをクリックしてみましょう。指定したフォームが開くことが確認できます。

まとめ
今回は、Accessによる自動化とは何か、そしてその実現手段として存在する2つの方法のうち、「マクロ」について基本的な内容をご紹介しました。
「フォームを開く」というシンプルなアクションを中心に解説しましたが、マクロはプログラムの知識がなくても扱えるため、比較的手軽に自動化を実現することができます。使い方次第では、実務の効率を大きく高めることも可能です。
今後の記事では、「VBA」との使い分けや、それぞれの特性を活かした活用方法について、より詳しく解説していく予定です。ぜひ引き続きご覧ください。



