AccessのタブコントロールはVBAを使うと、標準の切り替えタブを非表示にしてオリジナルボタンで操作するデザインに変更できます。手順はタブの設定・ボタン作成・VBA実装の3ステップで、コードはそのままコピーして使えます。
対象OS Windows 11
AccessのタブUI、「デザインが変えられない」と感じていませんか
フォームにタブコントロールを使っているものの、標準のデザインではフォントや色・形状を自由に変更できず、古い印象になってしまう——そう感じたことはないでしょうか。Webアプリケーションのようなモダンなタブインターフェースには程遠く、企業のデザインガイドラインに合わせたい場合は特に困ります。
この記事では、標準のタブ切り替え部分(つまみ)を非表示にして、オリジナルボタンで切り替えるカスタムタブを実装する方法をVBAコードつきで解説します。手順は3ステップで、コードはそのままコピーして使えます。カラーテーマの変更例・よくある質問も合わせてまとめています。
1. タブコントロールの基本設定
フォームにタブコントロールを配置し、標準の切り替えタブ(つまみ部分)を非表示にします。非表示にしてもVBAからのページ切り替えは行えます。
- Accessを起動し、タブコントロールを設置したいフォームをデザインビューで開きます。
- リボンの[フォームデザイン]タブ →[コントロール]グループから「タブコントロール」を選択し、フォーム上に配置します。
- 配置したタブコントロールを右クリックして「プロパティ」を選択します。
- プロパティシートの「書式」タブを開き、「スタイル」を「なし」に設定します。
- 「その他」タブを開き、タブコントロールの「名前」を変更します(例:TabMain)。VBAコードでこの名前を参照します。
- 「書式」タブで「背景スタイル」と「境界線スタイル」をいずれも「透明」に設定します。タブコントロールの枠線が消え、フォームの背景と一体化した見た目になります。
サイズや位置は後からドラッグで調整できます。この段階では大まかな配置で問題ありません。
「スタイル」を「なし」にすると、タブコントロール上部のつまみ部分が非表示になります。マウスでのタブ切り替えはできなくなりますが、次のステップでVBAによる切り替えを実装します。
タブコントロールはデフォルトで2ページ用意されています。ページを追加するには、タブコントロールを右クリックして「ページの挿入」を選択します。各ページの名前は「その他」タブから設定してください(例:pageOverview、pageDetails)。次の手順で作成するボタンはページ数と同じ数だけ用意します。
2. オリジナルタブボタンの作成とデザイン設定
非表示にしたタブの代わりとなるボタンを作成し、デザインをカスタマイズします。ここではテキストベースのシンプルなボタンを例に解説します。
- リボンの[フォームデザイン]タブ →[コントロール]グループから「ボタン」を選択し、タブコントロールの上部に配置します。ウィザードが表示された場合は「キャンセル」をクリックします。
- タブページの数に合わせてボタンを横並びに配置します。タブが3ページある場合はボタンも3つ作成します。
- 最初のボタンを選択してプロパティシートを開き、「書式」タブの「標題」をボタンに表示するテキストに変更します。
- 「その他」タブを開き、ボタンの「名前」を設定します。VBAで参照するため「btnTab1」「btnTab2」のように連番で管理しやすい名前にします。
- 残りのボタンも「標題」と「名前」を同様に設定します。フォントサイズやボタンサイズを揃えて統一感を出します。
- 各ボタンの「書式」タブを開き、「前景色」を「#313131」(濃いグレー)、「背景スタイル」と「境界線スタイル」をいずれも「透明」に設定します。
アクティブなタブと非アクティブなタブを視覚的に区別できるよう、背景色やフォントを変更しておくと操作性が向上します。
すべてのボタンを選択した状態でリボンの「配置」タブにある配置機能を使うと、等間隔・左揃えなどを一括で行えます。
3. VBAでタブ切り替え機能を実装する
各ボタンのクリックイベントにVBAコードを追加して、ボタンクリックでタブページが切り替わるように設定します。同時に、クリックしたボタンの色を変えてアクティブなタブを視覚的に示します。
- デザインビューで最初のタブボタン(btnTab1)を選択し、プロパティシートの「イベント」タブを開きます。
- 「クリック時」イベント右側の「...」(ビルド)ボタンをクリックし、「コードビルダ」を選択して「OK」をクリックします。
-
VBAエディタが起動したら、
btnTab1_Clickプロシージャ内に以下のコードを入力します。 -
同様に、
btnTab2_ClickではValue = 1、btnTab3_ClickではValue = 2を設定します。タブページのインデックスは0から始まります。 -
アクティブなボタンの色を動的に変更する
UpdateTabButtonStyle関数を同じモジュール内に追加します(コードは下のワンポイントを参照)。 - すべてのコードを入力したらVBAエディタを閉じ、フォームを上書き保存します。フォームビューで各ボタンをクリックし、タブが切り替わることとボタンの色が変わることを確認します。
Private Sub btnTab1_Click()
Me.TabMain.Value = 0
Call UpdateTabButtonStyle(0)
End Sub
タブ切り替えボタンのスタイル更新コード
以下は、タブ切り替え時にボタンの前景色を動的に変更する 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月
関連サイト(外部)