Accessのマクロには、独立マクロと埋め込みマクロというのがあります。
独立マクロは、マクロを個別に作成して、後でオブジェクトのプロパティを開いてイベントに設定します。複数のオブジェクトに設定できますが、オブジェクトの数は増えます。
一方、埋め込みマクロは、オブジェクトのプロパティからイベントに直接埋め込み、そのオブジェクトでしか使用できません。
どちらのマクロも使用できるマクロアクションは同じです。
複数のオブジェクトで使用するマクロは、独立マクロとして作成しておくと効率的です。
参考ここでのフォームの表示は、[ウィンドウを重ねて表示する]です。[ウィンドウを重ねて表示する]と[タブ付きドキュメント]の違いについては、以下の記事で解説しています。
-
[タブ付きドキュメント]と[ウィンドウを重ねて表示する]の違い
Access2007以降、オブジェクトを表示すると、タブ付きウィンドウで表示されるようになっています。 昔からAccessを使用している方に ...
独立マクロを作成してコマンドボタンに適用
フォームを閉じるマクロを作成します。
独立マクロの作成
[作成]タブの[マクロとコード]グループにある[マクロ]をクリックします。
マクロ
繰り返し実行されるタスクを自動化したり、操作性の高いインターフェイスを作成するために、データベースにロジックを追加します。
マクロビルダーが表示されます。
[新しいアクションの追加]の▼をクリックすると、マクロアクションの一覧が表示されます。このアクションを組み合わせて設定します。
[アクションカタログ]から選択してマクロウィンドウへ追加する方法もあります。
ここでは、マクロアクション[ウィンドウを閉じる]を選択します。
[ウィンドウを閉じる]アクションが表示されます。
アクション名付近でポイントすると、ポップヒントが表示されます。
各パラメーターもポイントすると、ポップヒントが表示されますので悩んだ時は表示してみてください。役立つ内容のものがあります。
ウィンドウを閉じる
指定されたウィンドウを閉じます。指定が省略された場合は、アクティブウィンドウを閉じます。
ここでは、何も指定せずにマクロを保存します。
キーボードから[F12]を押すと、[名前を付けて保存]ダイアログボックスが表示されます。
分かりやすいマクロ名を入力して[OK]ボタンをクリックします。マクロビルダーは閉じます。
ナビゲーションウィンドウには、作成したマクロが追加されています。
作成したマクロをフォームの[閉じる]ボタンに適用
作成したマクロをフォームの[閉じる]ボタンのクリック時イベントに適用します。
フォームをデザインビューで開いてボタンを作成します。
[フォームデザイン]タブの[コントロール]グループにある[ボタン]をクリックして、任意の位置にドラッグします。
[コマンドボタンウィザード]が表示されたら、[キャンセル]ボタンをクリックして閉じます。
ボタンを作成したまま[フォームデザイン]タブの[ツール]グループにある[プロパティシート]をクリックしてプロパティシートを表示します。
キーボードから[F4]キーを押しても表示できます。
[書式]タブの[標題]に[閉じる]と入力して確定します。
参考[標題]はボタンに表示する文字列になります。
プロパティの[イベント]タブにある[クリック時]の▼をクリックすると、作成したマクロが表示されますので選択します。
以下のようになります。
これで完了です。フォームビューに切り替えて確認します。
独立マクロを作成すると、ドロップダウンリストから選択するだけで設定できます。
同じ内容のマクロボタンを設置したいフォームが複数ある場合などは、独立マクロを作成しておくと、ドロップダウンから選択するだけで設定できます。
ただ、ナビゲーションウィンドウのオブジェクトの数は増えます。
独立マクロの名前を変更した場合は、再度、プロパティで選択し直す必要があります。
参考以下でも[独立マクロ]と[埋め込みマクロ]の違いについて記しています。
コード変換ができるのは、独立マクロです。[マクロをVisual Basicに変換]ボタンで変換できます。
-
マクロのコード変換は独立マクロで(埋め込みマクロではできない)
Access2007以降(拡張子accdb)では、[コマンドボタンウィザード]や[マクロビルダー]を使ってボタンを作成すると、[埋め込みマク ...
埋め込みマクロでボタンを作成
埋め込みマクロで同じ[閉じる]ボタンを作成する方法は、2つあります。
1つは、プロパティでマクロビルダーを起動して作成します。もう1つは、コマンドボタンウィザードを使用する方法です。
マクロビルダーを起動して作成
[閉じる]ボタンのプロパティを開いて、[イベント]タブの[クリック時]にある[ビルダー選択]ボタン[…]をクリックします。
[ビルダーの選択]ダイアログボックスから[マクロビルダー]を選択します。
独立マクロを作成した時と同じように、マクロアクションは[ウィンドウを閉じる]を選択します。
独立マクロを作成した場合とマクロアクションの違いはありません。
マクロビルダーに[上書き保存]と[閉じる]ボタンがあります。
[マクロをVisual Basicに変換]ボタンは無効になっています。
プロパティの[クリック時]には、[埋め込みマクロ]と表示されます。
ナビゲーションウィンドウにマクロオブジェクトはありません。
参考コードビルダーを使って作成する方法もあります。
コードビルダーとマクロビルダーの違いについては、以下の記事を参照してください。
-
マクロアクション(マクロビルダー)とVBA(コードビルダー)
Accessでは、マクロアクション(マクロの実行アクション)やVBA(Visual Basic for Applications)を使って一 ...
コマンドボタンウィザードで作成
ウィザードを使用したボタン作成は、埋め込みマクロになります。
マクロアクションのすべてはありませんが、主なコマンドはあります。
[フォームデザイン]タブの[コントロール]グループにある[ボタン]をクリックして、任意の位置にドラッグします。
[コマンドボタンウィザード]が表示されたら、[フォームの操作]の[フォームを閉じる]を選択して[次へ]をクリックします。
参考[コントロールウィザードの使用]がオンになっていないと[コマンドボタンウィザード]は表示されません。
[文字列]か[ピクチャ]を選択します。
[文字列]か[ピクチャ]を選択するようになっていますが、これは完成後にプロパティで変更できます。
文字列もピクチャも両方を表示することもできます。
ここでは、[文字列]を選択してボタンに表示する名前を入力します。[次へ]をクリックします。
コマンドボタンの名前を指定して、[完了]ボタンをクリックします。
コマンドボタンのプロパティ[クリック時]には[埋め込みマクロ]と表示されます。
コマンドボタンウィザードで作成された[埋め込みマクロ]をマクロビルダーで表示してみます。
以下のようになっています。
マクロビルダーのマクロアクションで作成したのと同じですね。
埋め込みマクロは、そのオブジェクトのイベントにしか使用できません。
ほかのデータベースでオブジェクトをインポートする場合、オブジェクトのみをインポートすればマクロも一緒にコピーされます。
独立マクロで設定した場合は、独立マクロも一緒にインポートしなければなりません。
効率よく作成できるように工夫してみてください。
参考ウィザードを使用したコマンドボタンの種類と動作については、以下の記事で解説しています。
-
コマンドボタンウィザードを使用したボタンの作成
Accessで起動時にメニューフォームを表示した後、ボタンをクリックして目的のフォームを開くようにしたいという要望はよくあります。 コマンド ...
コマンドボタンウィザードで作成した場合、気を付けてほしいことがあります。
[閉じる]ボタンを作成した場合、マクロアクションは何も問題ないのですが、ウィザードでフォームを開くアクションを選択した場合などは、修正しておいた方がいい場合があります。
-
コマンドボタンウィザードによるボタン作成後の[埋め込みマクロ]について
Accessでは、ウィザードを使用して簡単にボタンを作成することができます。 これについては、ウィザードを使ったコマンドボタンの作成で解説し ...
コマンドボタンウィザードで独立マクロを指定することもできます。この場合、プロパティでは[埋め込みマクロ]となりますが、他のデータベースでインポートしても独立マクロがないと動作しません。
-
独立マクロを作成してフォームを開くボタンを設置
Accessで作成済みのフォームを、ボタンをクリックして開くようにする方法です。 ここでは、独立マクロを作成してボタンに登録する方法を解説し ...
以下の記事でも同じボタンを独立マクロと埋め込みマクロで解説しています。
-
レコード削除時の確認メッセージを非表示にする
Accessでレコードを削除しようとすると、毎回、確認メッセージが表示されます。 ○件のレコードを削除します。 [はい]をクリックすると、削 ...
レコードの更新日時を保存する設定でも、独立マクロと埋め込みマクロで解説しています。
-
レコードの最終更新日時を自動保存してフォームに表示
Accessで更新日時を保存したいということは多いですね。 レコードが更新された日時をテーブルに保存する方法です。 VBAコード、埋め込みマ ...
独立マクロと埋め込みマクロの違いを知って使い分け
[独立マクロ]と[埋め込みマクロ]のどちらが良いというわけではありません。
ナビゲーションウィンドウのオブジェクトが多くて、もうこれ以上増やしたくないという場合は、埋め込みマクロのほうがいいでしょう。
でも、ここで紹介した[ウィンドウを閉じる]などのマクロは、複数のフォームで使用する場合が多いです。
そういう場合は、独立マクロを作成しておいて、使いまわした方が効率的です。
1つのオブジェクトでしか使用することがないだろうと思われるものは、埋め込みマクロにしておいたほうがオブジェクトは煩雑にならずに済みます。
簡単にまとめてみましたので参考にしてください。
独立マクロ | 埋め込みマクロ | |
マクロオブジェクト | あり | なし |
複数使用 | できる | できない (コピー&ペーストは可) |
コード変換 | できる | できない |
埋め込みマクロでも、コピーして使用することはできます。再利用もできますが、独立マクロのほうが簡単です。
埋め込みマクロではマクロウィンドウを表示する必要があります。
-
マクロツールで既存のアクションをコピーして活用(再利用)するには
Accessでは多くのマクロアクションが使用できます。 しかし、毎回アクションを選択して入力するのは面倒ですね。 マクロアクションは、コピー ...