ACCESS マクロの使い方

マクロの使い方

ACCESSで作業を自動化して業務効率化を図りたいけれど、VBAのプログラミングはハードルが高いと感じていませんか?

そんな時は、マクロを使って処理の自動化をすると便利です。
Excelではよく利用されるマクロですが、ACCESSにも搭載されています。

ただし、Excelのマクロのように操作を記録するものではありませんので、使い方が少し異なります。
今回は、ACCESSでのマクロの使い方ご説明します。


こんにちは。
はこにわガジェット (@hakoniwagadget) です。

ACCESSを使った売上管理、顧客管理などのデータベース開発を行っています。
ACCESSは使いこなすために少しスキルが必要なものの、うまく活用すればExcelよりも業務の効率化が図れます。
この記事ではACCESSの基本的な使い方をご紹介していきます。

マクロとは

マクロとは、処理の自動化を行う機能のことです。
ACCESSだけでなく、Excelなどでもよく利用される、Microsoft Officeシリーズ共通の機能です。

ACCESSでよく行われる、フォームを開く、メッセージを表示する、レコードを移動する、などの処理をマクロで記録しておき、特定のボタンを押した際に記録した処理を実行させることができます。

ACCESSは複数人で使用することが前提のデータベースです。
作成者はACCESSにある程度習熟しますので、ACCESSのナビゲーションウィンドウから直接フォームを開いたり、レポートを表示する操作ができるのですが、ACCESSに詳しくない利用者にも使ってもらわなければいけません。

そういった場合に、ボタン操作で機能を利用できるようにしておけば、ACCESSに詳しくない方でも簡単に利用することができるのです。
たとえば、下記のようなメインメニューを作成して、各機能を呼び出せるようにしておくことができます。

こうした機能を作成しておかないと、利用するたびにナビゲーションバーから必要なフォームを選んで表示しなければいけません。

作成者ならどれがどの機能かわかりますが、初めて利用する利用者にとってはどれを使えばいいか、わからないですよね。
このようにACCESSに不慣れな利用者の利便性を上げるための機能がマクロなのです。

マクロの作り方

実際のマクロの作成方法を見ていきましょう。
ACCESSのメニューから「作成」→「マクロ」を選択します。

すると、下記のマクロ作成画面が表示されます。

この画面でマクロを作成していきます。

今回は、顧客検索フォームを開くマクロを作成しましょう。
プルダウンから「フォームを開く」を選択します。

すると、下記の設定画面が表示されます。

フォーム名をプルダウンから選択します。
ビューはフォームビューにしておきます。フォームビューとは利用者が利用する際の表示画面です。

これで設定は完了です。
マクロを保存して閉じましょう。

ナビゲーションバーで、新たなマクロが作成されたことが確認できます。

このままでは、ナビゲーションバーからマクロを選択しないと使用できないので、作成したマクロをフォームのボタンに設定します。
フォームをデザインビューで開き、マクロを設定するボタンを選択した状態で、プロパティシートのクリック時イベントを設定します。

クリック時に先ほど作成したマクロの名称を設定すれば完成です。

ACCESSでユーザーの操作に反応して何らかの処理を設定する際は、全てこのフォームのプロパティシートの「イベント」タブを利用します。
ボタンに対してクリック時、ダブルクリック時などのイベントを設定できるほか、テキストボックスに対しては値の更新後等の様々なタイミングでイベントを設定可能です。

VBAとマクロの違い

マクロと似た機能に、VBAがあります。
VBAとはVisual Basic for Applicationの略称で、マイクロソフト製品で利用できるプログラミング言語です。

先ほどのようなフォームを開く処理はマクロでなくVBAでも作成可能です。
それでは、マクロとVBAはどう使い分けるべきでしょうか。

結論から言うと、ACCESSではマクロよりもVBAをお勧めします。
それは、マクロには以下の2つの欠点があるからです。

自由度が低い

マクロとVBAではVBAの方ができることの範囲が広いのです。
変数を使った自由な処理などがVBAの特徴です。

自分の作成したい機能をマクロで作っていったときに、途中でマクロだけでは実現できなことが分かって結局VBAでコードを書くくらいなら、最初からVBAで作成したほうが早いでしょう。

影響範囲の調査が難しい

2点目はACCESS修正時に影響範囲の調査が難しいということです。
ACCESSデータベースは一度作成した後も、少しずつ修正して使いやすくしていくことが一般的です。

また、作成者が異動や退職でいなくなった場合に、他の方がその運用を引き継ぐことが良くあります。
こうした際に、処理内容が分かりやすく作ってあるか否かは非常に重要なポイントです。

マクロはGUI画面で見ることができるので、一見可読性が高いように感じられるかもしれません。
しかし、大きな課題は検索ができないことです。

ACCESSはテーブルやクエリ、フォームなどの複数のオブジェクトを複雑に組み合わせて利用します。
そのため、特定のオブジェクトに加えた変更が他のオブジェクトに影響を及ぼす可能性が高く、修正する際には影響範囲を考慮して行うことが必須になります。
この際、テーブル名やフォーム名でACCESS内の検索を行って、該当のオブジェクトを使用している他のオブジェクトを事前にチェックする必要があります。

VBAであればテキストで検索を行うことで、オブジェクトを使用している箇所を簡単に全て洗い出すことが可能です。
しかし、マクロの内容は検索できないため、マクロをすべて目視で確認して影響調査をする必要があるのです。

これは、大規模なデータベースになればなるほど大きな問題になります。

VBAについて詳しく知りたい方は下記の記事もご覧ください。

ACCESS VBAとは

マクロとVBAの違いをまとめると下記のようになります。

最初はマクロの方がハードルが低く入りやすいと思いますが、どこかのタイミングでVBAを習得して、徐々に切り替えていくのが良いでしょう。

以上、マクロの使い方についてご紹介しました。


ACCESSを使いこなせば、業務の効率化や自動化が実現できます。
しかし、自分でACCESSを学ぶには時間がない、難しそうで不安、という方も多いでしょう。

そんな時は、ACCESS開発歴20年以上、過去に100以上のACCESSデータベースを開発してきた私(@hakoniwagadget)にお任せください。

ACCESSの新規開発、既存のACCESSの修正、ACCESSの操作レッスンなど様々なサービスをご提供しています。
ご興味のある方は下記のサービス一覧をご覧ください。

サービス一覧

最後までお読みいただき、ありがとうございました。