Accessのフォームには、タブコントロールというのがあります。
フォームに表示したいフィールド数が多い場合は、タブを切り替えて表示できるようにすると見やすくなります。
ただ、このタブコントロールを使用すると、タブオーダーが正常に動作しないということがあります。
Access2010以降のバージョンで既定のままで使用していると、この現象になります。
この問題は、タブコントロールのプロパティで[テーマの使用]を[いいえ]にすることで解決できます。
この記事の目次
タブコントロールのタブオーダーが正常に動作しない現象
タブコントロールの作成方法は、以下の記事で解説していますので参照してください。
-
タブコントロールを使用したタブ付きフォームの作成
Accessでは、タブコントロールを使ってタブ付きのフォームを簡単に作成できます。 例えば、テーブルにフィールドが多く、それを1つのフォーム ...
サンプルとして、以下のようなタブコントロールを作成しています。
フォームのデザインビュー
タブコントロールの書式などは、既定のままです。
すべてのページのタブオーダーは、自動にしています。テキストボックスのタブストップも既定の[はい]のままです。
参考タブオーダーとタブストップの設定については、以下の記事で解説しています。
-
フォームのタブオーダーとタブストップの設定
タブオーダーとは、キーボートの[Tab]キーや[Enter]キーを押して、カーソルがフォーム内のコントロールを移動するときの順番のことです。 ...
フォームビューでの動作
この設定のままフォームビューでタブ(ページ)を切り替えてみます。
[氏名]タブの[ページ1]です。フォームを開いた時は、このページが開き、先頭の[姓]のテキストボックスがフォーカスされています。
[住所]タブをクリックして、[ページ2]に切り替えます。
[備考]のテキストボックスがフォーカスされます。
[連絡先]タブをクリックして、[ページ3]に切り替えます。
[携帯電話番号]のテキストボックスがフォーカスされます。
すべてのページでタブオーダーは自動にしているので、ページの先頭のテキストボックスがフォーカスされなければならないのですが、なぜか[ページ2]と[ページ3]では、設定どおりに動作していません。
[ページ1]のタブオーダーも変わることがあります。
繰り返しタブを切り替えてみると、一定していません。毎回のように別のテキストボックスがフォーカスされます。
タブオーダーの設定どおりに動作することもありますが、先頭か最終のテキストボックスにフォーカスされることが多いようです。
ダミーのテキストボックスを作成して、タブオーダーの先頭に設定しても状況は変わりません。
ページのクリック時のイベントで設定しても、うまく動作しません。
Access2007までは、発生しなかった現象です。Access2007までは、プロパティに[テーマの使用]という項目はありませんでした。
[タブコントロール]の[テーマの使用]を[いいえ]で解決
フォームをデザインビューで開いて、タブコントロールの[プロパティ]を表示します。
プロパティは、キーボードから[F4]キーを押すと表示できます。
プロパティシートの[選択の種類]が[タブコントロール]になっていることを確認します。
[書式]タブの[テーマの使用]を[いいえ]にします。既定は[はい]です。
ダブルクリックすると、[はい]と[いいえ]を切り替えられます。
フォームビューを表示して、タブを切り替えてみると正常に動作します。繰り返し操作しても正常な動作です。
テーマを使用しない場合の背景色
タブコントロールのプロパティで[テーマの使用]を[いいえ]にした場合、ページの背景色を設定しようとすると、[テーマの使用]は[はい]に変わります。
[クリック時の色]の色を[テーマの色]ではなく[標準の色]から選択しても、[テーマの使用]は[はい]に変わってしまいます。
再度、[テーマの使用]を[いいえ]にすると、設定した色は無効になります。
タブコントロールの[クリック時の前景色]を設定しても[テーマの使用]は[はい]に変わります。
タブコントロールの[背景色]を変更しても[テーマの使用]は[はい]に変わります。
プロパティの以下の項目を触ると、[テーマの使用]は自動的に[はい]になります。
[テーマの使用]を[いいえ]のままにする場合は、触らないように気をつけてください。
- 背景色
- 境界線スタイル
- 境界線色
- ポイント時の色
- クリック時の色
- ポイント時の前景色
- クリック時の前景色
- 前景色
[詳細]セクションの背景色で設定
[詳細]セクションのプロパティを表示して、[書式]タブの[背景色]から設定します。
この時できれば、[標準の色]から選択したほうがいいです。
[テーマの色]から選択すると、テーマを変更したときに色が変わります。
詳細セクションの色がタブにも反映されます。
これでよければ、この方法がおすすめです。
参考もし、詳細セクションの背景色が反映されない場合は、タブコントロールの[背景スタイル]を[透明]にしてみてください。
Accessでテーマの適用が始まったのは、Access2010からです。コマンドボタンの色などを自由に設定できるようになっています。
いろいろ設定ができるようになって、楽しくなったのはいいのですが、意外なところで困ったことが発生していたんですね。
-
フォームとレポートに[書式]タブが追加されプロパティの設定が増えた
Access2010では、フォームやレポートのデザインビューが大きく変わっています。 [デザインツール]タブに[書式]タブが追加されて、Of ...
-
コマンドボタンの背景色を変更/ポイント時とクリック時の色を設定
Access2010から、フォームで作成したコマンドボタンの背景色がプロパティで設定できるようになりました。 ポイント時の色や、クリック時の ...
Officeのテーマについては、以下の記事で解説しています。
-
テーマの変更時は[配色][フォント][効果]の3つの要素を確認
Microsoft Officeには、ドキュメントのデザインを一括変更できる[テーマ]という機能があります。 WordとPowerPoint ...
タブ切り替え時にテキストボックスの反転表示をさせたくない
フォームを開いた時や、タブを切り替えたときにタブオーダーの先頭のテキストボックスがフォーカスされて、文字列が反転します。
何気にこの反転した状態で[Delete]キーを押すと、文字列は消えてしまいます。
この反転表示をさせたくない場合の方法は、以下の記事で解説しています。
-
フォームを開いた時にテキストボックスを反転表示したくない
フォームを開くと、既定ではTab移動順の先頭のテキストボックスが黒く反転表示します。 このテキストボックスの反転表示をさせたくない場合の方法 ...
いくつかの方法を紹介していますが、タブオーダー先頭のテキストボックスの[フォーカス取得後]のイベントで設定する方法をおすすめします。
以下の画像は、埋め込みマクロでの設定です。
上記記事内のフォーカス取得後のイベントに書き込むで詳細に解説しています。VBAでもOKです。
設定すると、反転せずにカーソルのみが表示されるようになります。
参考分割フォームでは、データシートビューでフィールドを非表示すると、タブオーダーの設定どおりにならなくなります。
分割フォームを使用している場合は、気を付けてください。
-
分割フォームのデータシートのフィールドを非表示にする時の注意点
Accessの分割フォームでは、データシートのフィールドは簡単に非表示に設定することができます。 ですが、データシートでフィールドを非表示に ...