Accessマクロの使い方とVBAとの使い分け

概要

この記事の結論
Accessのマクロは、フォームを開く、メッセージを出すなどのアクションを順番に並べ、操作を自動化する仕組みです。[作成]→[マクロ]から作成できます。まずはメニューのボタンで別のフォームを開く小さな処理から始めましょう。

この記事でわかること

  • 単独・埋め込み・データマクロを区別する
  • フォームを開くマクロを作成する
  • ボタンへ登録し条件分岐を追加する
  • シングルステップで動作を確認する

この記事の主な内容

  1. マクロはアクションを組み合わせて操作する
  2. 単独・埋め込み・データマクロを区別する
  3. フォームを開くマクロを作成する
  4. ボタンへ登録し条件分岐を追加する
  5. シングルステップで動作を確認する
  6. VBAへ移す判断と実行環境を確認する
  7. よくある質問

想定読了時間:約8分


1 マクロはアクションを組み合わせて操作する

Accessのマクロは、フォームを開く、メッセージを出すなどのアクションを順番に並べ、操作を自動化する仕組みです。[作成]→[マクロ]から作成できます。まずはメニューのボタンで別のフォームを開く小さな処理から始めましょう。

Excelの操作記録と同じつもりで扱うのではなく、実行したいアクションと引数を自分で指定します。

マクロの基本構造について、イベント、アクション、引数の関係を示す図

2 単独・埋め込み・データマクロを区別する

単独マクロはオブジェクトとして保存し、複数の場所から呼べます。
埋め込みマクロはボタンのクリック時などのイベントに組み込みます。
データマクロはテーブルの追加・変更などに関連する処理であり、UI操作のマクロとは実行される場面が違います。

3種類のマクロについて、単独、埋め込み、データの関係を示す図

設定例と確認点

種類置く場所用途
単独マクロナビゲーション上共通処理
埋め込みマクロフォームのイベントボタンなど
データマクロテーブルのイベントデータ変更時の処理

3 フォームを開くマクロを作成する

OpenFormアクションを追加し、フォーム名へF_顧客を指定します。
表示モードやデータモードは目的に合わせます。
追加専用と編集可能な表示を取り違えると、既存データが見えないなどの混乱を招きます。

OpenFormの設定について、対象、表示、モードの関係を示す図

操作手順

1. 新しいマクロを開き、OpenFormを追加します。

2. フォーム名をF_顧客にします。

3. 表示モードをフォームにします。

4. 必要な場合だけ抽出条件やデータモードを指定します。

5. M_顧客を開くという名前で保存します。

6. 実行して目的のフォームが開くことを確認します。

ボタンへ接続する流れについて、選択、イベント、指定、試験の関係を示す図

4 ボタンへ登録し条件分岐を追加する

フォームのボタンを選び、クリック時に保存したマクロを指定します。
埋め込みマクロを使う場合は、イベントのビルダーから直接アクションを設定します。

入力値によって動きを変えるならIf条件を使います。
例えば必須の検索条件がNullならメッセージを表示して処理を止め、入力済みなら検索画面を開く構成にできます。Nullと空文字をどちらも許さない場合は、判定条件をそれぞれ検討します。

条件分岐の考え方について、未入力、入力済みの関係を示す図

5 シングルステップで動作を確認する

期待した画面が開かない場合は、マクロを1アクションずつ実行し、引数や条件を確認します。
フォーム名の変更、閉じたフォームの参照、存在しないクエリなどが原因になることがあります。

エラーを無視して次へ進む設定は、失敗した処理の結果を使ってしまう原因になります。
OnErrorなどでエラー時の動きを定義し、利用者へ原因を伝えられるようにします。

失敗時の確認について、単位、引数、エラーの関係を示す図

既存Accessへの影響を判断できない場合

本記事の手順をコピーしたファイルで試しても解決しない場合や、既存データ・他の画面への影響を判断できない場合は、お気軽にご相談ください。対象ファイル、操作手順、期待する結果を整理すると、調査や改修の範囲を相談しやすくなります。


6 VBAへ移す判断と実行環境を確認する

少数の画面操作ならマクロで十分な場合があります。
複雑な繰り返し、共通化、外部連携、詳細なエラー処理が必要ならVBAを検討します。
VBAがあること自体で保守性が悪くなるわけではなく、役割分担と構造が重要です。

信頼されていないファイルでは一部の処理が制限されます。
すべてのマクロを無条件で有効にせず、作成元と組織の運用ルールを確認します。
配布先で同じ処理が動くことも試してください。

マクロとVBAの選択について、マクロ、VBAの関係を示す図

7 よくある質問

Accessでは主にアクションと引数を選んで処理を組み立てます。

クリック時の設定、アクションの引数、実行が制限されていないか確認します。

複雑な制御や共通処理が必要かで判断します。単純な画面操作ならマクロで十分な場合があります。

まとめ

信頼されていないファイルでは一部の処理が制限されます。
すべてのマクロを無条件で有効にせず、作成元と組織の運用ルールを確認します。
配布先で同じ処理が動くことも試してください。

本記事の手順をコピーしたファイルで試しても解決しない場合や、既存データ・他の画面への影響を判断できない場合は、お気軽にご相談ください。対象ファイル、操作手順、期待する結果を整理すると、調査や改修の範囲を相談しやすくなります。


Microsoft公式資料を参照しています。サンプルは説明用の架空データです。Windows版Accessの実機検証は未実施のため、適用前に対象環境のコピーで結果を確認してください。

Microsoft:マクロ入門
https://support.microsoft.com/en-us/access/introduction-to-macros

Microsoft:UIマクロ作成
https://support.microsoft.com/en-us/access/create-a-user-interface-ui-macro

TOP