Access でカスタム リボンを作成する

適用先
Access for Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

リボン (コマンドのグループを含むプログラム ウィンドウの上部にある帯) は、Microsoft Office Fluent ユーザー インターフェイスのコンポーネントです。 Office Fluent ユーザー インターフェイスでは、Access のコマンドに対して単一のホームが提供されます。

Access を使用してより高度なアプリケーションを構築するときに、アプリケーションを使いやすくするために Office Fluent リボンをカスタマイズしたいと考える場合があります。 たとえば、既定のタブの一部またはすべてを非表示にして、ユーザーが特定のコマンドを使用できないようにしたり、使用できるようにするコマンドのみを含む新しいカスタム タブを作成したりできます。

Office Fluent ユーザー インターフェイスを使用するすべての Microsoft Office プログラムでは、拡張マークアップ言語 (XML) を使用してリボンをカスタマイズします。 したがって、XML の基本的な知識があると役立ちます。 この記事では XML の概念については説明しませんが、リボンの基本的なカスタマイズ手順と、ニーズに合わせて変更できるいくつかのサンプル XML について説明します。

この記事では、XML を使用して独自のカスタム リボンを作成する方法について説明します。 組み込みのツールを使用して既存のリボンを変更する場合は、「 Office のリボンのカスタマイズ」を参照してください。

目的に合ったトピックをクリックしてください

リボンのカスタマイズ手法を理解する

Access でリボンをカスタマイズするには、カスタマイズ XML を作成してから、リボンの作成時にその XML を使用するように Access に指示するコードを追加するか、データベース プロパティを設定します。 XML を使用して、既存のタブを非表示にしたり、新しいタブ、コマンド グループ、およびコマンドを追加したりできます。 この記事では、Access に組み込まれているコマンド (検索、並べ替え、保存など) を追加する方法と、自分で作成した Access マクロを実行するコマンドを追加する方法について説明します。

XML を保存できる場所はいくつかありますが、最も簡単な方法の 1 つは、現在のデータベースのシステム テーブルに保存することです。 このプロセスには、USysRibbons という名前のシステム テーブルを作成し、リボン XML を追加して、データベース全体にカスタム リボンを表示するか、特定のフォームやレポートを表示するかを指定します。 複数のカスタム リボンを定義できます。1 つはアプリケーション全体に 1 つ、データベース内の個々のフォームまたはレポートには追加のリボンです。

カスタム リボンを作成して適用する

以下のセクションでは、カスタム リボンを作成して適用する手順について順を追って説明します。

始める前に

ナビゲーション ウィンドウにシステム テーブルを表示する既定では、ナビゲーション ウィンドウにシステム テーブルは表示されないので、USysRibbons テーブルを作成した後に表示されるように、まず [ナビゲーションのオプション] ダイアログ ボックスの設定を変更する必要があります。 次の手順で行います。

  1. Access でデータベースを開いた状態で、ナビゲーション ウィンドウの上部にあるナビゲーション バーを右クリックし、ショートカット メニューの [ナビゲーション オプション ] をクリックします。
  2. [ナビゲーション オプション] ダイアログ ボックスの [表示オプション] で、[システム オブジェクトの表示] チェック ボックスをオンにし、[OK] をクリックします。
    Access システム テーブルがナビゲーション ウィンドウに表示されます。

アドイン ユーザー インターフェイスのエラー メッセージの表示を有効にする エラー メッセージは、リボンのカスタマイズ XML の作成とトラブルシューティングの際に貴重な情報源となるため、Access で表示するようにすることをお勧めします。 次の手順で行います。

  1. [ファイル>オプション] をクリックします。 
  2. [ クライアント設定] をクリックします。 
  3. [全般] で [アドイン ユーザー インターフェイスのエラーを表示する] チェック ボックスをオンにし、[OK] をクリックします。

USysRibbons システム テーブルを作成する

この手順を使用して、USysRibbons システム テーブルを作成します。 後で、このテーブルを使ってリボンのカスタマイズ XML を格納します。

  1. [作成] タブで、[テーブル] グループの [テーブル デザイン] をクリックします。

  2. 次のフィールドをテーブルに追加します。 フィールド名は必ず図に示したとおりに入力してください。

    フィールド名 型 フィールド サイズ
    ID オートナンバー 長整数型
    RibbonName テキスト 255
    RibbonXml メモ
  3. 必要に応じて、リボン XML の機能を記述する "コメント" フィールドなど、このテーブルにさらにフィールドを追加することができます。

  4. [ID] フィールドを選択します。 [デザイン] タブで、[ツール] グループの [主キーの設定] をクリックします。

  5. クイック アクセス ツール バーの [保存] をクリックするか、Ctrl キーを押しながら S キーを押します。 新しいテーブルに USysRibbons という名前を付けます。

リボンのカスタマイズ XML を USysRibbons テーブルに追加する

この例では、データベースのユーザーが [ 作成 ] タブのツールを使用できないようにするとします。さらに、次の図に示すように、[貼り付け] コマンドのみを含む [カスタム タブ ] という名前の新しいタブを作成します。

[カスタム リボン] タブ

次の手順の XML がこの構成を作成します。

  1. ナビゲーション ウィンドウで USysRibbons テーブルを右クリックし、ショートカット メニューの [ データシート ビュー ] をクリックします。

  2. 次のデータをテーブルに追加します。 この記事から XML サンプルをコピーして、テーブルに直接貼り付けることができます。

    ID RibbonName RibbonXML
    (オートナンバー型) [マイ タブ] <customUI xmlns="http://schemas.microsoft.com /office/2006/01/customui"><ribbon startFromScratch="false"><tabs><tab idMso="TabCreate" visible="false" /><tab id="dbCustomTab" label="A Custom Tab" visible="true"><group id="dbCustomGroup" label="A Custom Group"><control idMso="Paste" label="Built-in Paste" enabled="true"/></group></tab></tabs></ribbon></customUI>
  3. この XML は、最初に、Access で "最初から始める" ことのないように指示します。つまり、Access で既定のリボン タブを表示するように指定します。 次に、既定のタブの 1 つ ( [作成] タブ) のみを非表示にするように Access に指示します。 最後に、"カスタム タブ" という名前の新しいリボン タブを作成し、タブに "カスタム グループ" という名前のコマンド グループを追加し、グループに [貼り付け] コマンドを追加します。 この例の詳細と、ニーズに合わせてカスタマイズする方法については、「 XML の例を理解する」セクションを参照してください。

  4. USysRibbons テーブルを閉じ、データベースを閉じてもう一度開きます。

カスタム リボンを適用する

これでカスタム リボン XML がテーブルに格納されたので、リボンをデータベース全体に適用するか、特定のフォームやレポートに適用するかに応じて、次のいずれかの操作を行います。

  • カスタム リボンをデータベース全体に適用する 

    1. [ファイル>オプション] をクリックします。 
    2. [ 現在のデータベース] をクリックし、[ リボンとツールバーのオプション] で [ リボン名] の一覧を選択し、目的のリボン (この例では [マイ タブ]) をクリックします。
    3. [OK] をクリックします。
  • カスタム リボンを特定のフォームまたはレポートに適用する 

    1. ナビゲーション ウィンドウで、カスタム リボンを適用するフォームまたはレポートを右クリックし、ショートカット メニューの [ デザイン ビュー ] をクリックします。
    2. プロパティ シートが表示されていない場合は、F4 キーを押して表示します。
    3. プロパティ シート上部の [選択の種類] で、オブジェクトの種類 (フォームまたはレポート) がリストで選択されていることを確認します。
    4. プロパティ シートの [ その他 ] タブで、[ リボン名] リストをクリックし、フォームまたはレポート (この場合は [マイ タブ]) を開いたときに表示するリボンをクリックします。
    5. クイック アクセス ツール バーの [保存] をクリックするか、Ctrl キーを押しながら S キーを押します。
    6. フォームまたはレポートを閉じ、ナビゲーション ウィンドウでダブルクリックしてもう一度開きます。
      選択したリボンが表示されます。

カスタム リボンが正しく動作することを確認したら、次の手順を実行して、システム テーブルを再度非表示にすることができます。

  1. ナビゲーション ウィンドウの上部にあるナビゲーション バーを右クリックし、ショートカット メニューの [ナビゲーション オプション ] をクリックします。
  2. [ナビゲーション オプション] ダイアログ ボックスの [表示オプション] で、[システム オブジェクトの表示] チェック ボックスをオフにし、[OK] をクリックします。

ページの先頭へ

既定のリボンを復元する

カスタム リボンの使用を停止して既定のリボンを復元するには、カスタム リボンをアプリケーション全体で使用しているのか、特定のフォームやレポートで使用しているのかに応じて、次のいずれかの方法を使用します。

既定のアプリケーション レベルのリボンを復元する

  1. [ファイル>オプション] をクリックします。 
  2. [ 現在のデータベース] をクリックし、[ リボンとツールバーのオプション] で [ リボン名] ボックスの内容を削除します。
  3. データベースを閉じて、もう一度開きます。

Access の既定のリボン タブが表示されます。 リボン XML は、削除するまで USysRibbons テーブルに残ります。そのため、カスタム リボンを元に戻す場合は、[ リボン名 ] オプションを以前に含めていた値に戻すことで復元できます。

フォームまたはレポートの既定のリボンを復元する

  1. デザイン ビューでフォームまたはレポートを開きます。
  2. プロパティ シートが表示されていない場合は、F4 キーを押して表示します。
  3. プロパティ シート上部の [選択の種類] で、オブジェクトの種類 (フォームまたはレポート) がリストで選択されていることを確認します。
  4. プロパティ シートの [その他 ] タブで、[ リボン名] プロパティ ボックスの内容を削除します。
  5. フォームまたはレポートを保存し、閉じ、もう一度開きます。

リボン XML は、削除するまで USysRibbons テーブルに残ります。そのため、カスタム リボンを元に戻す場合は、 リボン名 プロパティの値を以前に含まれていた値に戻すことで復元できます。

ページの先頭へ

XML の例を理解する

この記事で前に使用した XML の例と、このサンプルで作成したカスタム リボンの図を次に示します。

<customUI xmlns="http://schemas.microsoft.com /office/2006/01/customui"><ribbon startFromScratch="false"><tabs><tab idMso="TabCreate" visible="false" /><tab id="dbCustomTab" label="A Custom Tab" visible="true"><group id="dbCustomGroup" label="A Custom Group"><control idMso="Paste" label="Built-in Paste" enabled="true"/></group></tab></tabs></ribbon></customUI>

[カスタム リボン] タブ

この例では、XML の 2 行目で startFromScratch 属性が False に設定されています。 この値を False に設定すると、Access では既存のタブはすべてそのまま残され、新しいタブは既存のタブの右側に追加されます。 この属性を true に設定すると、既存のタブがすべて削除され、XML で作成したタブのみが表示されます。 startFromScratch 属性を false に設定しても、個々のタブを非表示にすることができます。 これは、組み込みの [ 作成] タブを非表示にする XML の 4 行目で示されます。残りの行では、カスタム タブとカスタム グループを作成し、次の XML 行を使用して組み込みの [貼り付け] コマンドをグループに追加します。

<control idMso="Paste" label="Built-in Paste" enabled="true"/>

カスタム リボンにグループまたはコントロールを追加する XML の類似行を追加し、異なる idMso と ラベル の値を置き換えることによって、リボンにグループやコントロールを追加できます。 たとえば、現在選択されているオブジェクトを Excel にエクスポートするコントロールを作成するには、次の XML を使用します。

<control idMso="ExportExcel" label="Export to Excel" enabled="true"/>

コントロールを [貼り付け] コマンドと同じグループに追加するには、[ 貼り付け ] コマンドを作成する行の直前または直後に XML の新しい行を挿入します。 新しいグループを作成するには、上記の [カスタム グループ ] グループを作成する XML をコピー、貼り付け、変更できます。 次の例は、カスタム グループに 2 つのコントロールを追加する XML を示しています。

<customUI xmlns="http://schemas.microsoft.com /office/2006/01/customui"><ribbon startFromScratch="false"><tabs><tab idMso="TabCreate" visible="false" /><tab id="dbCustomTab" label="A Custom Tab" visible="true"><group id="dbCustomGroup" label="A Custom Group"><control idMso="Paste" label="Built-in Paste" enabled="true"/></group><group id="dbCustomGroup2" label="Another Custom Group"><control idMso="ImportExcel" label="Import from Excel" enabled="true"/><control idMso="ExportExcel" label="Export to Excel" enabled="true"/></group></tab></tabs></ribbon></customUI>

この XML は 、カスタム タブに別のグループを追加します。次の図に示すように、新しいグループには 2 つのコントロールが含まれています。1 つは Excel からのインポート操作を開始するコントロールで、もう 1 つは Excel へのエクスポート操作を開始するコントロールです。

グループが 2 つある [カスタム] リボンのタブ

注

カスタム リボンの各 グループ ID と タブ ID の値は一意である必要があります。

コマンドの idMso 値について学習する 組み込みコマンドの idMso 値については、次の手順に従います。

  1. [ファイル>オプション] をクリックします。 
  2. [リボンまたはクイック アクセス ツール バーのカスタマイズ] をクリックします。 
  3. 情報が必要なアイテムの上にポインターを移動します。 コントロールの idMso 値がポップ ヒントのかっこ内に表示されます。

Access マクロを実行するコマンドを追加する Access マクロを実行するコマンドを追加することで、カスタム リボンにさらに柔軟性を加えることができます。 たとえば、 MyMacro という名前のマクロを作成したとします。 マクロを実行するコマンドをリボンに追加するには、XML に次の行を追加します。

<button id="RunMyMacro" label="Run My Macro" onAction="MyMacro"/>

前の例の [貼り付け ] コマンドと同じグループにコントロールを追加するには、[ 貼り付け ] コマンドを作成する行の直前または直後に XML の新しい行を挿入します。 次の例は、コマンドを追加する XML を示しています。

<customUI xmlns="http://schemas.microsoft.com /office/2006/01/customui"><ribbon startFromScratch="false"><tabs><tab idMso="TabCreate" visible="false" /><tab id="dbCustomTab" label="A Custom Tab" visible="true"><group id="dbCustomGroup" label="A Custom Group"><control idMso="Paste" label="Built-in Paste" enabled="true"/><button id="RunMyMacro" label="Run My Macro" onAction="MyMacro"/></group><group id="dbCustomGroup2" label="Another Custom Group"><control idMso="ImportExcel" label="Import from Excel enabled="true"/><control idMso="Export Excel" label="Export to Excel" enabled="true"/></group></tab></tabs></ribbon></customUI>

ページの先頭へ