この記事では、 Access データベース内のマクロと、頻繁に実行するタスクを自動化することで時間を節約する方法について説明します。 マクロの作成と使用の背後にある基礎を調べるほか、 Accessのマクロの機能強化についても説明します。
マクロとは?
Access のマクロは、タスクを自動化し、フォーム、レポート、コントロールに機能を追加できるツールです。 たとえば、コマンドボタンをフォームに追加した場合、ボタンのOnClickイベントをマクロに関連付けます。このマクロには、ボタンをクリックするたびに実行するコマンドが含まれています。
Accessでは、マクロは、実行するアクションの一覧を作成して記述する簡略化されたプログラミング言語と考えると便利です。 マクロを作成するときは、ドロップダウンリストから各アクションを選択して、各アクションに必要な情報を入力します。 マクロを使用すると、 Visual Basic for Applications (VBA) モジュールでコードを記述することなく、フォーム、レポート、コントロールに機能を追加できます。 マクロでは VBA で使用できるコマンドのサブセットが用意されており、マクロを作成する方が VBA コードを記述するより簡単だと感じるユーザーがほとんどです。
たとえば、データ入力フォームの1つから直接レポートを作成したいとします。 フォームにボタンを追加してから、レポートを開くマクロを作成できます。 マクロは、後にボタンのOnClickイベントとなるスタンドアロンマクロ(データベース内の別のオブジェクト)としても、ボタン自体に直接埋め込まれるOnClickイベントとしても作成可能です。 いずれでも、ボタンをクリックすると、マクロが実行されてレポートが開きます。 これらの種類のマクロは、一般にユーザーインターフェイスマクロと呼ばれます。
データマクロを使用すると、作業を自動化したり、テーブルに直接機能を追加したりできます。 データマクロとその動作は、新しいレコードをテーブルに追加するときなど、特定のテーブルイベントに関連付けられます。
マクロビルダーを使用してマクロを作成します。その例を次の図に示します。
ユーザーインターフェイスマクロのマクロビルダーを表示するには
-
作成タブのマクロとコードグループで、マクロをクリックします。
データマクロのマクロビルダーを表示するには
-
データシートビューで任意のテーブルを開きます。 変更前イベントおよび変更後イベントグループのテーブルタブで、変更前または挿入後などといったイベント・コマンドのいずれかをクリックします。
マクロビルダー、およびユーザー・インターフェースとデータ・マクロの作成およびテスト方法について詳しくは、この記事の末尾にある関連項目セクションの関連記事を参照してください。
Accessのマクロ機能
以前のバージョンの Accessでは、一般的に使用される多くの関数を VBA コードを記述しないと実行できませんでした。 Accessの現在のバージョンでは、コードの必要性を排除するために、新機能とマクロ アクションが追加されています。 これにより、データベースに機能を追加することがより簡単、より安全になります。
-
埋め込みマクロ フォーム、レポート、またはコントロールによって提供されるイベントにマクロを埋め込むことができます。 埋め込まれたマクロはナビゲーションウィンドウに表示されません。作成元のフォーム、レポート、またはコントロールの一部になります。 埋め込みマクロを含むフォーム、レポート、またはコントロールのコピーを作成した場合、そのマクロもコピーに反映されています。
-
セキュリティ強化 マクロビルダーですべてのアクションを表示ボタンが太字表示されていない場合、その際使用可能なマクロアクションとRunCommand引数は、実行に信頼できるステータスを必要としないものだけです。 これらのアクションで構築されたマクロは、データベースが無効モードになっているとき(VBAの実行が禁止されているとき)でも実行されます。 信頼できるリスト にはないマクロアクションを含むデータベース、またはVBAコードを持つデータベース には、信頼状態を明示的に付与する必要があります。
-
エラー処理およびデバッグ Access は、マクロの実行中にエラーが発生したときに特定のアクションを実行できるようにする 、OnError (VBA の "エラー時" ステートメントと同様) や ClearMacroError などのマクロ アクションを提供します。 さらに、SingleStepマクロアクションを使用すると、マクロ内の任意の時点でシングルステップモードに入ることができます。そのため、一度に1つのアクションでマクロがどのように機能するかを観察できます。
-
一時変数 3つのマクロアクション( SetTempVar 、 RemoveTempVar、および RemoveAllTempVars )を使用すると、マクロ内に一時変数を作成して使用できます。 これらを条件式で使用して、実行中のマクロを制御したり、レポートやフォームとの間でデータをやり取りしたり、値の一時的な保存場所を必要とするその他の目的に使用できます。 これらの一時変数はVBAでもアクセス可能なので、VBAモジュールとの間でデータをやり取りするためにも使用できます。
マクロアクションの詳細
マクロビルダーで作業している間は、アクションまたは引数をクリックしてから、マクロビルダーウィンドウの右下隅にあるボックス内の説明を読むことで詳細を知ることができます。 また、各マクロアクションにはヘルプ記事が関連付けられています。 アクションについて詳しく知るには、アクションリスト内のアクションをクリックしてからF1を押します。