今日はAccessのマクロについて触れてみます。
マクロは、要するに作業の自動化のことです。
Excelのマクロとは全然違うもの
「マクロ」と聞くと、Excelのマクロを連想して「そんな難しいこと全然出来ません~!!」となる方も多いのではないでしょうか。
ご安心ください。
Accessのマクロは、Excelとは全然違い、VBAが全く出来なくても簡単に作ったり、メンテナンスしたりすることができます。
マクロとは
アプリケーションソフトで、複数の操作手順を記憶させておき、必要な時に自動で記憶した手順を実行する機能、のことです。
Accessのマクロはおススメです!
Excelのマクロは「手順の自動化」を第一の目的にしています。
対して、Accessのマクロは第一の目的は「手順の見える化」にあると考えていて、そこが一番大きな違いであり、特徴です。

上記が実際のマクロの画面になります。
上記では、全部で5行ありますが、1行1工程です。
内容は
- メッセージを表示しない
- クエリB01 〇〇を動かす
- クエリB02 〇〇を動かす
- クエリD01 〇〇をExcelにエクスポートする
- Accessを自動終了する
仕事の工程が一連の流れとして、日本語で明記されています。
なので、引継ぎや平準化がしやすく、その点で非常に重宝するのです。
マクロの作り方
1.作成>マクロを押す
これでマクロの作成画面に移ります。

2.すべてのアクションを表示
何もしないと「アクションカタログ」だけが作成できますが、後で必要になるので「すべてのアクションを表示」を選んでください。

3.「新しいアクションの追加」で選択をする

私はいつも一番最初に「メッセージの設定 →いいえ」を選択するので、同様のものを選んでください。
これを選ぶと、テーブル作成クエリなどの時に「〇〇件ですが作成しますか はい/いいえ」みたいなメッセージを出さずに先に進めることが出来ます。
これが出ると自動化にならない(メッセージのところで止まってしまう)ので、これをまず排除したい考えになります。
4.ドロッグ&ドロップでも作成ができる
私は基本的にこの方法でクエリを追加していっていますので、ご参考まで。

5.どのクエリを追加するか考える
基本的に以下の4つのクエリを追加していきます。
- テーブル作成クエリ
- 追加クエリ
- 更新クエリ
- 削除クエリ
選択クエリやクロス集計クエリは基本的にマクロでは必要ありません。
どうしてか?
選択クエリ、クロス集計クエリは計算上必要ですが、作業としてはデータを作らないので、作業としては飛ばしても問題ないからです。
従って、今回の例では、B01とB02の2つのテーブル作成クエリのみを追加しています。
6.完成データをエクスポートする
大抵の仕事ではAccessで作ったデータをExcelに出力する作業があると思います。
Accessのバージョンによって異なりますが、Access2013の場合はExcelにエクスポートしたい場合、「スプレッドシートのインポート/エクスポート」を選択します。
変換の種類:インポート or エクスポート を選択します。入力ならインポート、出力ならエクスポートです。
スプレッドシートの種類:ExcelもしくはLotusの種類を選びます。
テーブル名:出力したいテーブルorクエリを入力します。なお、テーブル名とありますが、クエリでも大丈夫です。下記ではクエリ名を選んでいます。
ファイル名:出力したい場所とファイル名を入力します。
今回は下記のように入力しました。
=”C:\Users\light\Documents\エクスポート_”&format(now(),”YYYYMMDD”)&”.xlsx”
これで出来上がるファイルは
lightさん(ユーザー名)のドキュメントファイル上に、「エクスポート_20170518」という名前のExcelファイルとなります。
- イコールを最初に入れます。エクセルの関数と同じですね
- \ のところは、円マークを入れて下さい
- 基本的に ” ” で区切ってファイル場所や名前、拡張子を指定します
- &で区切って関数を入れます。ここではファイル名に出力した年月日を含ませています
- Excelファイルの場合は、拡張子はxlsx。2003以前の旧バージョンの場合は、xlsです。
実際にご自身で出力先を指定する時は、上記を参考に出力先とファイル名を変更してみてください。
6.最後に「Accessの終了」を設定する
マクロの最後に「Accessの終了」を設定します。
これが意外と重要になります。
理由は、作業が完了したかどうかがハッキリ分かるようになるからです。
最後にAccessの終了を設定することで、
⇒一旦マクロボタンを押す
⇒他の仕事をする
⇒気付いた時にAccessが閉じていれば終了、立ち上がっていれば作業中
という判断をすることができます。
完成したマクロは下記の通り

ポイントはエクスポートです。
手動で行う場合は、どこにどういう名前で出力すればいいのか迷いますが、マクロになっていると自動で出来ますし、どこにどう出すかも可視化できます。
「マクロ」と聞くと敷居は高く感じるかもしれませんが、Accessのマクロは作業内容が日本語で表示され、ドラッグ&ドロップで感覚的に作成できます。
ぜひチャレンジしてみてください!