AccessのタブコントロールをVBAでカスタマイズする方法【標準タブを非表示にしてボタンで切り替え】

更新日:2026/2/14Office

AccessのタブコントロールはVBAを使うと、標準の切り替えタブを非表示にしてオリジナルボタンで操作するデザインに変更できます。手順はタブの設定・ボタン作成・VBA実装の3ステップで、コードはそのままコピーして使えます。

AccessのタブコントロールをVBAでカスタマイズする

対象OS Windows 11

AccessのタブUI、「デザインが変えられない」と感じていませんか

フォームにタブコントロールを使っているものの、標準のデザインではフォントや色・形状を自由に変更できず、古い印象になってしまう——そう感じたことはないでしょうか。Webアプリケーションのようなモダンなタブインターフェースには程遠く、企業のデザインガイドラインに合わせたい場合は特に困ります。

この記事では、標準のタブ切り替え部分(つまみ)を非表示にして、オリジナルボタンで切り替えるカスタムタブを実装する方法をVBAコードつきで解説します。手順は3ステップで、コードはそのままコピーして使えます。カラーテーマの変更例・よくある質問も合わせてまとめています。

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

フォームにタブコントロールを配置し、標準の切り替えタブ(つまみ部分)を非表示にします。非表示にしてもVBAからのページ切り替えは行えます。

  1. Accessを起動し、タブコントロールを設置したいフォームをデザインビューで開きます。
  2. リボンの[フォームデザイン]タブ →[コントロール]グループから「タブコントロール」を選択し、フォーム上に配置します。
  3. サイズや位置は後からドラッグで調整できます。この段階では大まかな配置で問題ありません。

  4. 配置したタブコントロールを右クリックして「プロパティ」を選択します。
  5. タブコントロールを右クリックしてプロパティを開く
  6. プロパティシートの「書式」タブを開き、「スタイル」を「なし」に設定します。
  7. スタイルを「なし」に設定してタブのつまみを非表示にする

    「スタイル」を「なし」にすると、タブコントロール上部のつまみ部分が非表示になります。マウスでのタブ切り替えはできなくなりますが、次のステップでVBAによる切り替えを実装します。

  8. 「その他」タブを開き、タブコントロールの「名前」を変更します(例:TabMain)。VBAコードでこの名前を参照します。
  9. タブコントロールの名前をTabMainに変更する
  10. 「書式」タブで「背景スタイル」と「境界線スタイル」をいずれも「透明」に設定します。タブコントロールの枠線が消え、フォームの背景と一体化した見た目になります。
  11. 背景スタイルと境界線スタイルを透明に設定する

    タブコントロールはデフォルトで2ページ用意されています。ページを追加するには、タブコントロールを右クリックして「ページの挿入」を選択します。各ページの名前は「その他」タブから設定してください(例:pageOverview、pageDetails)。次の手順で作成するボタンはページ数と同じ数だけ用意します。

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

非表示にしたタブの代わりとなるボタンを作成し、デザインをカスタマイズします。ここではテキストベースのシンプルなボタンを例に解説します。

  1. リボンの[フォームデザイン]タブ →[コントロール]グループから「ボタン」を選択し、タブコントロールの上部に配置します。ウィザードが表示された場合は「キャンセル」をクリックします。
  2. タブページの数に合わせてボタンを横並びに配置します。タブが3ページある場合はボタンも3つ作成します。
  3. アクティブなタブと非アクティブなタブを視覚的に区別できるよう、背景色やフォントを変更しておくと操作性が向上します。

  4. 最初のボタンを選択してプロパティシートを開き、「書式」タブの「標題」をボタンに表示するテキストに変更します。
  5. ボタンの標題を設定する
  6. 「その他」タブを開き、ボタンの「名前」を設定します。VBAで参照するため「btnTab1」「btnTab2」のように連番で管理しやすい名前にします。
  7. ボタンの名前をbtnTab1に設定する
  8. 残りのボタンも「標題」と「名前」を同様に設定します。フォントサイズやボタンサイズを揃えて統一感を出します。
  9. すべてのボタンを横並びに配置して統一感を出す
  10. 各ボタンの「書式」タブを開き、「前景色」を「#313131」(濃いグレー)、「背景スタイル」と「境界線スタイル」をいずれも「透明」に設定します。
  11. ボタンの前景色・背景スタイル・境界線スタイルを設定する

    すべてのボタンを選択した状態でリボンの「配置」タブにある配置機能を使うと、等間隔・左揃えなどを一括で行えます。

3. VBAでタブ切り替え機能を実装する

各ボタンのクリックイベントにVBAコードを追加して、ボタンクリックでタブページが切り替わるように設定します。同時に、クリックしたボタンの色を変えてアクティブなタブを視覚的に示します。

  1. デザインビューで最初のタブボタン(btnTab1)を選択し、プロパティシートの「イベント」タブを開きます。
  2. 「クリック時」イベント右側の「...」(ビルド)ボタンをクリックし、「コードビルダ」を選択して「OK」をクリックします。
  3. VBAエディタが起動したら、btnTab1_Click プロシージャ内に以下のコードを入力します。
  4. btnTab1_Clickプロシージャにコードを入力する
    Private Sub btnTab1_Click()
        Me.TabMain.Value = 0
        Call UpdateTabButtonStyle(0)
    End Sub
  5. 同様に、btnTab2_Click では Value = 1btnTab3_Click では Value = 2 を設定します。タブページのインデックスは0から始まります。
  6. btnTab2とbtnTab3にも同様にクリックイベントを設定する
  7. アクティブなボタンの色を動的に変更する UpdateTabButtonStyle 関数を同じモジュール内に追加します(コードは下のワンポイントを参照)。
  8. UpdateTabButtonStyle関数をモジュールに追加する
  9. すべてのコードを入力したらVBAエディタを閉じ、フォームを上書き保存します。フォームビューで各ボタンをクリックし、タブが切り替わることとボタンの色が変わることを確認します。
  10. フォームビューでタブ切り替えの動作を確認する

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

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

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) を追加してください。

カラーバリエーション:RGB値を変えるだけでデザインを変更できます

UpdateTabButtonStyle 関数内のRGB値を書き換えるだけで、カラーテーマを変更できます。フォームのコンセプトや業務用途に合わせて選んでください。

テーマ名 アクティブ色 非アクティブ色 向いている用途
ライト&クリーン ネイビー #0F4C81
RGB(15, 76, 129)
ライトグレー #B0BEC5
RGB(176, 190, 197)
一般的なビジネス用途
ダーク&ゴールド ゴールド #FFC107
RGB(255, 193, 7)
グレー #787878
RGB(120, 120, 120)
管理ツール・重厚感のある仕上がり
モダングリーン エメラルド #009688
RGB(0, 150, 136)
シルバーグレー #BDBDBD
RGB(189, 189, 189)
医療・環境系・落ち着いた印象
コーポレートブルー ロイヤルブルー #1976D2
RGB(25, 118, 210)
スチールブルー #90A4AE
RGB(144, 164, 174)
企業カラーへの対応・信頼感の演出

よくある質問

Q. ボタンをクリックしてもタブが切り替わりません。

VBAコード内で指定しているタブコントロール名(例:TabMain)と、プロパティシートで設定した実際の名前が一致しているか確認してください。名前が異なると実行時エラーが発生します。フォームビューで動作確認しているかどうかもチェックしてください。

Q. タブページを4つ以上に増やせますか?

はい。タブコントロールを右クリックして「ページの挿入」を選択するとページを追加できます。ページを増やした場合は、対応するボタンと UpdateTabButtonStyle 関数内のコードも追加してください。4ページ目のインデックスは Value = 3 になります。

Q. マウスオーバー時に色が変わるエフェクトを付けられますか?

各ボタンの「マウス移動時」(MouseMove)イベントにVBAコードを追加することで実装できます。ただし、AccessのフォームはWebアプリのようなアニメーション効果には対応していないため、色のオン・オフ切り替えが主な変化になります。

確認環境 Windows 11 / Microsoft Access 2021

最終更新 2026年4月

関連サイト(外部)

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

この記事を書いた人

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

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

検証環境

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

品質保証

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