Access マクロを使用すると、フォーム、レポート、または個々のコントロールを右クリックすると表示されるカスタム ショートカット メニューを作成できます。 特定のフォームまたはレポートのリボンに表示されるカスタム メニューを作成することもできます。
マクロを使用してメニューを作成するには、次の 3 つの主な手順を実行します。
-
サブマクロでメニュー コマンドを含むマクロ オブジェクトを作成します。
-
メニュー自体を作成する別のマクロ オブジェクトを作成します。
-
コントロール、フォーム、レポート、またはデータベース全体にメニューを添付します。
次のセクションでは、これらの手順について詳しく説明します。
注: Access 2007 を使用していますか? その場合は 、Access 2007でカスタム ショートカット メニューを作成するセクションまでスキップしてください。
手順 1: メニュー コマンドを含むサブマクロを使用してマクロ オブジェクトを作成する
この手順では、サブマクロを含むマクロ オブジェクトを作成します。サブマクロはショートカット メニューの個別のコマンドになります。
サブマクロとは
マクロ オブジェクト内のサブマクロを使用して、一連のマクロ アクションを定義できます。 マクロ オブジェクト内のサブマクロは、さまざまなコントロールイベントやオブジェクト イベントとは別に呼び出されます。 マクロ オブジェクト内の個々のサブマクロにはそれぞれ一意の名前が付き、1 つ以上のマクロ アクションを含めできます。
-
作成タブのマクロとコードグループで、マクロをクリックします。
-
カスタム ショートカット メニューに表示するコマンドごとに、次の操作を行います。
-
マクロ デザイン ウィンドウに Submacro マクロ ステートメントを追加し、ショートカット メニューに表示するサブマクロに名前を付けます ("印刷" や "更新" など)。
ヒント: キーボードを使用してコマンドを選択するためにアクセス キーを作成するには、コマンド名にアクセス キーにしたい文字の前にアンパサンド (&) を入力します (例: "&更新")。 この文字はメニューに下線が引きます。
-
サブパラメーター内で、ショートカット メニューのコマンドをクリックするときに最初に実行する操作を選択します。
-
このコマンドを選択するときに実行する他のアクションがある場合は、同じサブマクロ内で個別のマクロ アクションとして追加します。
-
-
マクロ オブジェクトを保存して名前を付け (mcrShortcutMenuCommands など)。
次の図は、カスタム メニューまたはショートカット メニューに 3 つのサブマクロを含むマクロ オブジェクトの例を示しています。
手順 2: メニューを作成する 2 つ目のマクロ オブジェクトを作成する
この手順は冗長に見えるかもしれませんが、手順 1 で作成したマクロ オブジェクトからショートカット メニューを作成するには 、AddMenuマクロ アクションを含む 2 つ目のマクロ オブジェクトを作成する必要があります。 このマクロ アクションは、"メニュー マクロ" と呼ばれる場合があります。
-
作成タブのマクロとコードグループで、マクロをクリックします。
-
マクロ デザイン ウィンドウの [新しい アクションの追加] コンボ ボックスで、[メニューの追加 ] を選択します。
-
AddMenuマクロ アクションの [メニュー名] 引数ボックスに、メニューの名前 ("フォーム コマンド" など) を入力します。 この引数は必須ではありません。ただし、手順 3 でリボン タブ (フォームまたはレポートの [アドイン] タブなど) にメニューを追加する場合にお勧めします。 手順 3 でショートカット メニューとしてメニューを追加した場合 、"メニュー 名" 引数は無視されます。
-
[メニュー マクロ名] 引数 ボックスに、手順 1 で作成したマクロ オブジェクトの名前を入力します。
-
mcrAddShortcutMenu など、この 2 番目 のマクロ オブジェクトを保存して名前を付けて指定します。
次の図は、手順 1 でデザインしたメニューを作成するメニュー マクロ オブジェクトの例を示しています。
手順 3: コントロール、フォーム、レポート、またはデータベースにメニューを添付する
メニューを表示する場所に応じて、次の 1 つ以上の手順を使用します。
フォームまたはレポートの [Add-Insタブにメニューを追加する
特定のフォームまたはレポートの [アドイン] タブにメニューを表示する場合は、次の手順に従います。
-
ナビゲーション ウィンドウで、メニューを表示するフォームまたはレポートを右クリックし、[デザイン ビュー] を クリックします。
-
[デザイン] タブの [ツール] で [プロパティ シート] をクリックします。
-
[プロパティ シート] 作業ウィンドウの上部にある一覧から [フォーム] または [レポート] を選択して、オブジェクト全体を選択します。
-
プロパティシートの [その他] タブの [メニュー バー] プロパティ ボックスに、手順 2 で作成したマクロ オブジェクトの名前を入力します (この例では、"mcrAddShortcutMenu")。
-
フォームまたはレポートの変更を保存します。
次にフォームまたはレポートを開いた場合は、[アドイン] タブがリボンに表示されます。 次の図に示すように、タブをクリックしてメニューを表示します。
カスタム タブの追加や既定のタブの非表示など、リボンのカスタマイズ方法の詳細については 、「Accessでカスタム リボンを作成する」を参照してください。
フォーム、レポート、またはコントロールのショートカット メニューとしてメニューを追加する
特定のフォーム、レポート、またはコントロールを右クリックするときにメニューを表示する場合は、次の手順を使用します。
-
ナビゲーション ウィンドウで、ショートカット メニューを表示するフォームまたはレポートを右クリックし、[デザイン ビュー] を クリックします。
-
[デザイン] タブの [ツール] で [プロパティ シート] をクリックします。
-
ショートカット メニューを添付するコントロールまたはオブジェクトを選択します。
オブジェクト全体を選択するには、[プロパティシート] 作業ウィンドウの上部にある一覧から [フォーム] または [レポート] を選択します。
-
プロパティシートの [その他] タブの [ショートカット メニュー バー] プロパティ ボックスに、手順 2 で作成したマクロ オブジェクトの名前を入力します (この例では、"mcrAddShortcutMenu")。
-
[ショートカット メニュー] プロパティが [ はい] に設定されている必要 があります。
-
フォームまたはレポートの変更を保存します。
次にフォームまたはレポートを開き、フォーム、レポート、またはコントロールを右クリックすると、次の図に示すように、関連するコマンドを含むショートカット メニューが表示されます。
グローバル ショートカット メニューとしてメニューを追加する
この手順は、現在のデータベースのすべての既定のショートカット メニューを置き換える操作です。 特定のフォーム、レポート、またはコントロールに添付したカスタム ショートカット メニューは、影響を受け取る必要があります。
-
[ファイル] > [オプション] の順にクリックします。
-
[Access のオプション] ダイアログ ボックスで [カレント データベース] をクリックします。
-
[リボンとツール バーのオプション] の [ショートカット メニュー バー] ボックスに、手順 2 で作成したマクロの名前を入力します (この例では、"mcrAddShortcutMenu")。
-
[OK]をクリックして、[Access のオプション] ダイアログボックスに変更を保存します。
-
変更を有効にするためにデータベースを閉じてから、もう一度開きます。
ユーザー設定のショートカット メニューは、添付されているオブジェクトの既定のショートカット メニューに置き換わるものになります。 これらのメニューで使用する特定の Access コマンドを保持する場合は 、RunCommand マクロ アクションを使用して、必要なメニューのマクロ オブジェクトにコマンドを挿入します。
コントロールに添付されたカスタム ショートカット メニューは、データベースで定義されているその他のカスタム ショートカット メニューに取って代用されます。 フォームまたはレポートに関連付けられたカスタム ショートカット メニューは、カスタムグローバル ショートカット メニューに取って当てはめ込む必要があります。
フォーム、レポート、またはデータベースのメニュー マクロを指定すると、フォーム、レポート、またはデータベースを開くたびに、このメニュー マクロが実行されます。 フォーム、レポート、またはデータベースを開いている間に、メニュー マクロ オブジェクトまたはコマンドを定義するマクロ オブジェクトを変更した場合は、フォーム、レポート、またはデータベースを閉じて、もう一度開いて変更を確認する必要があります。
コマンドのショートカット メニュー リストにサブメニューを作成するには、次の図に示すように、手順 1 に従ってサブメニュー コマンドのみを含む個別のマクロ オブジェクトを作成します。
次に、手順 1 にもう一度従って、上位レベルのメニュー オブジェクトのコマンドを定義します。 AddMenu マクロ アクションを使用して、上位レベルのマクロ オブジェクトにサブメニュー をアイテムとして 追加します。 次の図は、サブメニューを含むメニューのマクロ オブジェクトを示しています。 この例のマクロ オブジェクトの 3 番目のサブマクロでは、"エクスポート " サブ メニュー(mcrShortcutSubMenuCommands) が作成されます。
次の図は、サブメニューを含む完成したショートカット メニューを示しています。
メニューの各レベルのマクロ オブジェクトで AddMenu マクロ アクションを使用して、複数のレベルのサブメニューを作成できます。 AddMenuアクションごとに [メニュー名] 引数の値を指定してください。そうしないと、サブメニューは上位メニューに空白行として表示されます。
If/Then/Else ブロックを使用するマクロ式の条件は、トップ レベル メニュー マクロ オブジェクトでのみサポートされます。 つまり、メニュー マクロ オブジェクトで条件式を使用して、特定のメニューまたはショートカット メニューを表示するが、トップ レベルのメニューにのみ表示されるかどうかを判断できます。 条件式を使用して、メニューのコマンドやサブメニューの表示と非表示を切り取る機能は使用できません。 条件式を使用して、カスタム ショートカット メニューまたはグローバル ショートカット メニューを表示または非表示にすることもできます。
必要に応じて、手順 2 で作成するメニュー マクロをマクロ オブジェクトの一部にできます。 たとえば、さまざまなオブジェクトまたはコントロールに複数のショートカット メニューがある場合、必要なすべてのメニュー マクロを含む 1 つのマクロ オブジェクトを作成できます。 サブマクロごとに一意の名前を付けしてください。 手順 3 では、マクロを参照するには 、MacroObjectName.SubmacroName という表記を使用します。 たとえば 、mcrAddShortcutMenus.AddMenu2などです。
Access 2007 でカスタム ショートカット メニューを作成する
Access 2007 のマクロ デザイン ウィンドウは、新しいバージョンと異なっています。Access 2007 を使用している場合は、次のセクションを展開して後に進む必要があります。
この手順では、マクロ グループを作成します。各マクロはショートカット メニューの個別のコマンドです。
マクロ グループとは
マクロ グループは、2 つ以上の独立したマクロを含む 1 つのマクロ オブジェクトです。 個々のマクロは、[マクロ名] 列に各マクロの名前を入力して識別されます。 次の図では 、Macro3 は マクロ グループです。 NotFoundMsg と FoundMsg はグループ内の個々のマクロであり、各マクロは 2 つのマクロ アクションで構成されます。
注: 既定 では、[マクロ名 ] 列は非表示になっています。 [マクロ名] 列を表示するには、[デザイン] タブの [表示/非表示] グループで [マクロ名]をクリックします。
-
[作成] タブの [その他] グループで、[マクロ] をクリックします。 このコマンドを使用できない場合は、[モジュール] または [クラス モジュール] ボタンの下にある矢印をクリックして、[マクロ] をクリックします。
-
[デザイン] タブの [表示/非表示]グループで、[マクロ名] をクリックして [マクロ名] 列を表示します。
-
カスタム ショートカット メニューに表示するコマンドごとに、次の操作を行います。
-
[ マクロ名] 列 で、ショートカット メニューに表示するテキスト ("レポートの印刷" や "保存" など) を入力します。
-
注: キーボードを使用してコマンドを選択するためにアクセス キーを作成するには、コマンド名にアクセス キーにしたい文字の前にアンパサンド (&) を入力します (例: "&保存")。 この文字はメニューに下線が引きます。
-
-
[アクション ] 列で、ショートカット メニューのコマンドをクリックするときに最初に実行する操作を選択します。
-
このコマンドを選択するときに実行する他のアクションがある場合は、後続の行に追加します。 後続のアクションごとに、[マクロ名] セルを 空白のままにします。
-
注: 2 つのメニュー コマンドの間に線を作成するには、[マクロ名] 列に適切なメニュー コマンドの間にハイフン (-) を入力します。
-
-
-
マクロを保存して名前を付け (mcrShortcutMenuCommands など)。
次の図は、カスタム メニューまたはショートカット メニューのマクロ グループの例を示しています。
この手順は冗長に見えるかもしれませんが、手順 1 で作成したマクロ グループからショートカット メニューを作成するには 、AddMenu マクロ アクションを含む 2 つ目のマクロを作成する必要があります。 このマクロは"メニュー マクロ" と呼ばれる場合があります。
-
[作成] タブの [その他] グループで、[マクロ] をクリックします。 このコマンドを使用できない場合は、[モジュール] または [クラス モジュール] ボタンの下にある矢印をクリックして、[マクロ] をクリックします。
-
マクロの最初の行で、[アクション] リスト の [メニューの追加 ] を選択 します。
-
[ アクションの引数] の[ メニュー 名] ボックスに、メニューの名前 ("レポート コマンド" など) を入力します。 この引数は必須ではありません。ただし、手順 3 でリボン タブ (フォームまたはレポートの [アドイン] タブなど) にメニューを追加する場合にお勧めします。 手順 3 でショートカット メニューとしてメニューを追加した場合 、"メニュー 名" 引数は無視されます。
-
[メニュー マクロ名] ボックス に、手順 1 で作成したマクロの名前を入力します。
-
マクロを保存して名前を付け (mcrAddShortcutMenuなど)。
次の図は、手順 1 でデザインしたメニューを作成するメニュー マクロの例を示しています。
メニューを表示する場所に応じて、次の 1 つ以上の手順を使用します。
-
フォームまたはレポートの [Add-Insタブにメニューを追加する
次の図に示すように、特定のフォームまたはレポートの [アドイン] タブにメニューを表示する場合は、次の手順に従います。
-
ナビゲーション ウィンドウで、メニューを表示するフォームまたはレポートを右クリックし、[デザイン ビュー] を クリックします。
-
[デザイン] タブの [表示/非表示] グループの [プロパティ シート] をクリックします。
-
[プロパティ シート] 作業ウィンドウの上部にある一覧から [フォーム] または [レポート] を選択して、オブジェクト全体を選択します。
-
プロパティシートの [その他] タブの [ショートカット メニュー] プロパティ ボックスに、手順 2 で作成したマクロの名前を入力します (この例では、"mcrAddShortcutMenu")。
次にフォームまたはレポートを開いた場合は、[アドイン] タブがリボンに表示されます。 タブをクリックすると、メニューが表示されます。
カスタム タブの追加や既定のタブの非表示など、リボンのカスタマイズ方法の詳細については 、「Accessでカスタム リボンを作成する」を参照してください。
リボンは、Microsoft Office Fluent ユーザー インターフェイスのコンポーネントです。
-
-
フォーム、レポート、またはコントロールのショートカット メニューとしてメニューを追加する
次の図に示すように、特定のフォーム、レポート、またはコントロールを右クリックするときにメニューを表示する場合は、次の手順を使用します。
-
ナビゲーション ウィンドウで、ショートカット メニューを表示するフォームまたはレポートを右クリックし、[デザイン ビュー] を クリックします。
-
[デザイン] タブの [表示/非表示] グループの [プロパティ シート] をクリックします。
-
ショートカット メニューを添付するコントロールまたはオブジェクトを選択します。
注: オブジェクト全体を選択するには、[プロパティシート] 作業ウィンドウの上部にある一覧から [フォーム] または [レポート] を選択します。
-
プロパティシートの [その他] タブの [ショートカット メニュー バー] プロパティ ボックスに、手順 2 で作成したマクロの名前を入力します (この例では、"mcrAddShortcutMenu")。
-
-
グローバル ショートカット メニューとしてメニューを追加する
この手順は、現在のデータベースのすべての既定のショートカット メニューを置き換える操作です。 特定のフォーム、レポート、またはコントロールに添付したカスタム ショートカット メニューは、影響を受け取る必要があります。
-
[オプション] Microsoft Officeクリックし、[Access のオプション ] をクリックします。
-
[Access のオプション] ダイアログ ボックスで [カレント データベース] をクリックします。
-
[リボンとツール バーのオプション] の [ショートカット メニュー バー] ボックスに、手順 2 で作成したマクロの名前を入力します (この例では、"mcrAddShortcutMenu")。
-
-
ユーザー設定のショートカット メニューは、添付されているオブジェクトの既定のショートカット メニューに置き換わるものになります。 これらのメニューで使用する特定の Access コマンドを保持する場合は 、RunCommand アクションを使用して、コマンドを含むメニューのマクロ グループにコマンドを追加します。
-
コントロールに添付されたカスタム ショートカット メニューは、データベースで定義されているその他のカスタム ショートカット メニューに取って代用されます。 フォームまたはレポートに関連付けられたカスタム ショートカット メニューは、カスタムグローバル ショートカット メニューに取って当てはめ込む必要があります。
-
フォーム、レポート、またはデータベースのメニュー マクロを指定すると、フォーム、レポート、またはデータベースを開くたびに、このメニュー マクロが実行されます。 フォーム、レポート、またはデータベースを開いている間に、メニュー マクロまたはコマンドを定義するマクロ グループを変更した場合は、フォーム、レポート、またはデータベースを閉じて、もう一度開いて変更を確認する必要があります。
-
サブメニューを作成 サブメニュー、手順 1 に従って、サブメニュー コマンドのみを含む個別のマクロ グループを作成します。 次に、手順 1 にもう一度従って、上位レベルのメニューのコマンドを定義します。 AddMenu マクロ アクションを使用して、上位レベルのマクロ グループにサブメニュー をアイテムとして 追加します。 次の図は、サブメニューを含むメニューのマクロ グループを示した後、結果のショートカット メニューを示しています。 マクロ グループの 3 行目で、[エクスポート] サブ メニュー(mcrSubMenu) が作成されます。
メニューの各レベルのマクロ グループで AddMenu アクションを使用して、複数のレベルのサブメニューを作成できます。 AddMenuアクションごとに [メニュー名] 引数の値を指定してください。そうしないと、サブメニューは上位メニューに空白行として表示されます。
-
マクロの条件は、トップ レベル メニュー マクロでのみサポートされます。 つまり、メニュー マクロで条件を使用して、特定のメニューまたはショートカット メニューを表示するが、トップ レベルのメニューにのみ表示されるかどうかを判断できます。 条件を使用して、メニューのコマンドやサブメニューを表示または非表示にすることはできません。 条件を使用して、ユーザー設定のショートカット メニューまたはグローバル ショートカット メニューを表示または非表示にすることもできます。
-
必要に応じて、手順 2 で作成するメニュー マクロをマクロ グループの一部にできます。 たとえば、さまざまなオブジェクトまたはコントロールに複数のショートカット メニューがある場合、必要なすべてのメニュー マクロを含む 1 つのマクロ オブジェクトを作成できます。 [マクロ名] 列を 表示し 、マクロごとに一意の名前を入力します。 手順 3 では、次の表記を使用してマクロを参照します。macrogroupname.macroname. たとえば 、mcrAddShortcutMenus.AddMenu2などです。