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