初心者向け、Accessマクロの入門本

初心者向け、Accessマクロの入門本

5冊めの本を書かせていただきました!

Accessには自動化の方法として「マクロ」と「VBA」の二種類の方法がありますが、本書はその「マクロ」のみを扱った専門書です。

なんとなく、マクロは「かんたんそう」、VBAは「難しそう」というイメージがあり、そのため「マクロはVBAに比べてできることが少ないんじゃないじゃないか」という誤解もされがちなのですが、マクロはVBAを元に作られているので、一部の特殊なことを除けば、ほとんど同じことを再現することができます。

本書では、はじめて「プログラミング」にふれる方にもわかりやすいかんたんな命令からはじめて、最終的にはマクロだけでAccessの実用的な機能を実装するところまでを目標に構成されています。

概要

ちょこっと中身を覗きながら、どんな内容なのかご紹介します。

CHAPTER1 マクロの基本と本書のサンプルについて

まずは、プログラミングとはなにか、マクロとVBAとの違いとはなにか、というところから、Accessの主要オブジェクトとのマクロの関係性を学んでいきます。また、このCHAPTER1で、これから作成するサンプルにて章ごとにどのような機能を作っていくのか、という説明を行っています。

CHAPTER2 マクロツールを使ってみよう

マクロツールを開いて画面の説明をするところから、「メッセージボックス」を例にごくかんたんなアクションの登録の仕方、引数の設定の仕方、実行の仕方と動作確認までを行います。マクロのいちばん基本的な部分を解説しています。

CHAPTER3 フォームを作成しよう

マクロは、それ単体を使うというよりは、「フォーム」上の「ボタンをクリック」するなど、フォーム上の動作と結びつけて起動させることで、アプリケーションとして使いやすくなります。この章では、「フォーム」の作り方、使い方、「フォーム上のボタン」にマクロを登録し、「フォームから別のフォームを開く」という動作を作成します。

CHAPTER4 高機能なフォームからクエリやレポートを操作しよう

3章で学んだ「フォームからフォームを開く」マクロの応用で、「フォームからクエリ/レポートを開く」マクロを作成します。ただ開くだけではなく、日付やIDなどを選択したり入力したりできる部品も加えて、「条件を絞って出力する」という機能もつけてみましょう。

CHAPTER5 アプリケーションを仕上げて使いやすくしよう

4章では最低限のマクロで機能を作っただけなので、実際に使ってみると「開きっぱなしだと新たな条件が反映されない」「絞り込んだ結果が0件でも開いてしまう」などなど、ちょっと使いにくい部分が出てきてしまいます。この章ではそんな「もうちょっと」な部分を回避するための機能を追加し、アプリケーションをより使いやすくします。

CHAPTER6 Excelとデータをやりとりしよう

この章では、クエリやレポートの結果をExcel形式で出力(エクスポート)したり、Excelに格納されているデータをAccessのテーブルに追加する(インポート)といったマクロを解説しています。

特にインポート処理は難易度が高めなので、表計算ソフトであるExcelと、データベースソフトであるAccessの違いを理解することが大切で、「変数」や「エラー処理」なども交えながら解説しています。

CHAPTER7 マクロをもっと使いこなそう

この章は、マクロを使って「こんなこともしてみよう」という小技集になっています。テキストボックスを用意してユーザーの入力した値を使ったり、コンボボックスを2つ使って片方の選択肢を絞り込んだりするなど、実用的なマクロを紹介しています。

APPENDIX アクションカタログ リファレンス

最後に、アクションカタログに表示される全項目を概要文とともにまとめたリファレンスをご用意しました!

ひとこと

冒頭で、

「マクロはVBAに比べてできることが少ないんじゃないじゃないか」という誤解もされがち

と書きましたが、実は私も当初、そのように思っていたのです。VBAの機能を簡素化したものなのかな、と。

ところが使ってみると、想像以上に高機能なものも作れるということがわかり、「これはすごい!」と感動したことを覚えています。

実はサンプル作成時に張り切りすぎて、もっと高機能なものまで作ったのですが、ターゲットとする読者層に対して難易度が見合わずにカットした部分があるんです…、残念…。もったいないのでいつかブログの記事で書こうかなと思っています。

マクロとVBA、それぞれにメリットとデメリットがありますが、マクロはプログラム初心者にもわかりやすく、入門しやすいのは間違いないと思います。本書を通じて、「はじめてのプログラミング」を経験し、「マクロってこんなことまでできるんだ!」ということを感じていただけたら嬉しく思います。