Microsoft Accessでタブコントロールをカスタマイズしておしゃれなタブを設置する方法

Microsoft Accessの標準タブコントロールをカスタマイズして、モダンでスタイリッシュなデザインのタブ切り替えインターフェースを実装する方法を解説します。標準のタブを非表示にし、オリジナルのボタンとVBAコードを組み合わせることで、見た目と操作性を大幅に向上させることができます。

カスタムタブコントロール

対象OS Windows 10、Windows 11

Accessタブコントロールの課題とカスタマイズのメリット

Microsoft Accessの標準タブコントロールは、複数のページを切り替えて表示できる便利なコントロールですが、デザインの自由度が低く、タブの色やフォント、形状などを細かく変更することができません。そのため、モダンなWebアプリケーションと比較すると見た目が古く感じられることがあります。

この記事では、標準のタブ切り替え部分を非表示にして、代わりにオリジナルのボタンを配置し、VBAでタブ切り替えの機能を実装することで、完全にカスタマイズ可能なタブインターフェースを作成する方法を紹介します。この方法を使えば、企業のブランドカラーに合わせたデザインや、アクティブなタブを視覚的に強調する動的な効果も実現できます。カスタマイズに必要な手順は、タブコントロールの基本設定、ボタンの作成・デザイン、VBAコードの実装の3つのステップに分かれます。

1. タブコントロールの基本設定

最初のステップとして、フォームにタブコントロールを配置し、標準のタブ部分(切り替え用のつまみ)を非表示にする設定を行います。タブの外観を非表示にしても、VBAからページの切り替えは可能です。

  1. Accessを起動し、タブコントロールを設置したいフォームをデザインビューで開きます。
  2. リボンの「フォームデザイン」タブにある「コントロール」グループから「タブコントロール」を選択し、フォーム上の任意の位置に配置します。
  3. タブコントロールのサイズや位置は後からドラッグ操作で自由に調整できるので、この段階では大まかな配置で問題ありません。フォーム上でタブ内に表示するコントロールの量を考慮して、十分なスペースを確保してください。

  4. 配置したタブコントロールを右クリックし、コンテキストメニューから「プロパティ」を選択します。
    プロパティを開く
    タブコントロールのプロパティを開きます。
  5. プロパティシートの「書式」タブを開き、「スタイル」プロパティを「なし」に設定します。
    スタイルをなしに設定
    スタイルを「なし」に設定します。
  6. 「スタイル」を「なし」にすると、タブコントロール上部に表示されていた切り替え用のタブ(つまみ部分)が完全に非表示になります。これにより、ユーザーはマウスでタブを直接クリックして切り替えることができなくなりますが、この後の手順でVBAコードによる切り替え機能を実装します。

  7. プロパティシートの「その他」タブを開き、タブコントロールの「名前」プロパティを分かりやすいものに変更します(例:TabMain)。
    名前を変更
    「その他」タブで名前を「TabMain」に変更します。
  8. 引き続き「書式」タブで、タブコントロールの背景スタイルを「透明」、境界線スタイルを「透明」に設定します。これにより、タブコントロール自体の枠線が消え、フォームの背景と一体化したクリーンな見た目になります。
    ボタンのデザイン設定
    書式を設定してモダンなデザインにします。
  9. タブコントロールには、デフォルトで2つのページが用意されています。必要に応じてページを追加するには、タブコントロールを右クリックして「ページの挿入」を選択します。追加したページには、プロパティシートの「その他」タブから分かりやすい名前(例:pageOverview、pageDetails)を付けてください。次の手順で作成するオリジナルボタンは、ページ数と同じ数だけ用意します。

2. オリジナルタブボタンの作成とデザイン

次に、非表示にしたタブの代わりとなるオリジナルのボタンを作成し、デザインをカスタマイズします。ここでは例として、テキストベースのシンプルなボタンの設置方法を紹介します。

  1. リボンの「フォームデザイン」タブにある「コントロール」グループから「ボタン」を選択し、タブコントロールの上部にボタンを配置します。ボタンコマンドウィザードが表示された場合は「キャンセル」をクリックしてください。
  2. 各タブページに対応する数のボタンを横並びに配置します。例えば、タブページが3つある場合は、3つのボタンを横に並べます。
  3. ボタンの背景色やフォントを変更して、アクティブなタブと非アクティブなタブを視覚的に区別できるようにすると操作性が向上します。また、ボタンに画像(アイコン)を設定したり、ボタンの形状を工夫するなど、用途に応じたデザインのカスタマイズが可能です。

  4. 最初のボタンを選択してプロパティシートを開き、「書式」タブの「標題」プロパティをボタンに表示したいテキストに変更します(例:「⚫︎」や任意のラベル名)。
    ボタンの標題を設定
    ボタンの標題を設定します。
  5. プロパティシートの「その他」タブを開き、ボタンの「名前」プロパティを設定します。VBAコードで参照するため、「btnTab1」「btnTab2」「btnTab3」のように連番で分かりやすい名前にしてください。
    ボタンの名前を設定
    後でVBAコードで参照するため、分かりやすい名前にします。
  6. 残りのボタンについても同様に、プロパティシートで「標題」と「名前」を設定します。すべてのボタンで統一感のあるデザインになるように、フォントサイズやボタンのサイズも揃えてください。
    すべてのボタンを設定
    統一感のあるデザインで配置します。
  7. 各ボタンの「書式」タブを開き、前景色を「#313131」(濃いグレー)に設定します。さらに、背景スタイルを「透明」、境界線スタイルを「透明」に設定して、ボタンの装飾を最小限にします。
    すべてのボタンを設定
    統一感のあるデザインで配置します。
  8. すべてのボタンの設定が完了したら、配置を調整して等間隔に並べてください。複数のボタンを選択した状態で、リボンの「配置」タブにある「配置」機能を使うと、左揃え・等間隔配置などを簡単に行えます。

3. VBAコードでタブ切り替え機能を実装

最後のステップとして、VBAコードを使用してボタンクリック時にタブを切り替える機能を実装します。各ボタンのクリックイベントにコードを追加し、タブの表示ページを切り替えると同時に、ボタンの見た目も連動して変化するようにします。

  1. デザインビューで最初のタブボタン(btnTab1)を選択し、プロパティシートの「イベント」タブを開きます。
  2. 「クリック時」イベントの右側にある「…」(ビルド)ボタンをクリックし、表示されるダイアログで「コードビルダ」を選択して「OK」をクリックします。
  3. VBAエディタ(Visual Basic Editor)が起動したら、btnTab1_Clickプロシージャ内に以下のコードを入力します。このコードは、タブコントロールの表示を1ページ目(インデックス0)に切り替え、ボタンのスタイルを更新します。
    VBAコードを入力
    タブを切り替えるコードを入力します。
    Private Sub btnTab1_Click()
        Me.TabMain.Value = 0
        Call UpdateTabButtonStyle(0)
    End Sub
  4. 同様に、他のタブボタンにもクリックイベントのコードを追加します。btnTab2_Click()では Value に 1 を、btnTab3_Click() では Value に 2を渡します。タブページのインデックスは0から始まるため、ページの順番に合わせて番号を設定してください。
    他のボタンのコード
    2番目のタブはValue = 1、3番目はValue = 2と設定します。
  5. 続けて、アクティブなタブボタンの前景色を変更してどのタブが選択されているか視覚的にわかるようにする、UpdateTabButtonStyle関数を同じモジュール内に追加します。コードの詳細はこの手順の下にある「ワンポイント」を参照してください。
    スタイル変更関数
    ボタンの見た目を動的に変更する関数を作成します。
  6. すべてのコードを入力したら、VBAエディタを閉じてフォームを上書き保存します。フォームビューに切り替えて、各ボタンをクリックしたときにタブページが正しく切り替わり、クリックしたボタンの色が濃く表示されることを確認してください。
    動作確認
    ボタンをクリックしてタブが切り替わることを確認します。

タブ切り替えボタンのスタイル更新コード

以下は、タブ切り替え時にボタンの前景色を動的に変更する UpdateTabButtonStyle関数のコードです。この関数では、まずすべてのボタンの前景色を薄いグレー(#9A9A9A)にリセットした後、引数で指定されたアクティブなタブに対応するボタンだけを濃いグレー(#313131)に変更します。ボタンの数を増やした場合は、関数内に対応するボタンの処理を追加してください。

Private Sub UpdateTabButtonStyle(ActiveTab As Integer)
    ' すべてのボタンを非アクティブスタイルに(前景色を薄いグレーに)
    Me.btnTab1.ForeColor = RGB(154, 154, 154)  ' #9A9A9A
    Me.btnTab2.ForeColor = RGB(154, 154, 154)  ' #9A9A9A
    Me.btnTab3.ForeColor = RGB(154, 154, 154)  ' #9A9A9A

    ' アクティブなボタンの前景色を濃いグレーに
    Select Case ActiveTab
        Case 0
            Me.btnTab1.ForeColor = RGB(49, 49, 49)    ' #313131
        Case 1
            Me.btnTab2.ForeColor = RGB(49, 49, 49)    ' #313131
        Case 2
            Me.btnTab3.ForeColor = RGB(49, 49, 49)    ' #313131
    End Select
End Sub

フォームの読み込み時に1番目のタブがアクティブな状態でボタンのスタイルを初期化したい場合は、フォームの「読み込み時」イベントに以下のコードを追加してください:
Call UpdateTabButtonStyle(0)

関連サイト(外部)

タブ付きのフォームを作成する

関連記事

前の記事

Microsoft Accessでナビゲーションメニュー付きフォームを作成する方法

Microsoft Accessでメインフォームの左側にナビ…...

この記事を書いた人

まきばひつじ
まきばひつじ PCトラブル解決アドバイザー

執筆歴10年以上のWindowsPC・iPhoneトラブル解決の専門家。国内大手PCメーカーのサポートセンターでスーパーバイザーを経験後、企業・自治体のヘルプデスク立ち上げに従事。15年以上の現場経験で10,000件以上のトラブルを解決。現在は独立系PCアドバイザー/テクニカルライターとして、実機検証にこだわった記事を執筆しています。

検証環境

Windows 11 Home/Pro、Windows 10、iPhone(最新iOS)

品質保証

すべての手順を実機で確認し、スクリーンショット付きで解説