概要
| この記事の結論 Accessのコマンドボタンは、デザインビューで選択し、プロパティシートの[書式]にある[ポイント時の色]と[ポイント時の前景色]でマウスオーバー時の背景色と文字色を設定できます。通常はMouseMoveイベントを書かずに実現できます。通常時、ポイント時、押下時を分け、テーマや既存VBAの影響も確認します。キーボード操作でも用途を判断できるボタン名にしましょう。 マウスオーバーとは、クリックせずにマウスポインターを部品の上へ重ねている状態です。 |
この記事でわかること
- 通常 ポイント 押下の状態を区別する
- プロパティシートで背景色と文字色を設定する
- 読みやすく迷わない色の組み合わせにする
- 設定が反映されない原因を順番に確認する
- VBAで同じ設定をまとめて適用する
この記事の主な内容
- 通常 ポイント 押下の状態を区別する
- プロパティシートで背景色と文字色を設定する
- 読みやすく迷わない色の組み合わせにする
- 設定が反映されない原因を順番に確認する
- VBAで同じ設定をまとめて適用する
- マウス以外の操作と配布先で確認する
- よくある質問
想定読了時間:約12分~15分
通常 ポイント 押下の状態を区別する
ボタンにマウスポインターを重ねたときの色は、[ポイント時の色]と[ポイント時の前景色]で設定します。クリック時の処理を作る必要はなく、標準のコマンドボタンなら表示用のプロパティから始められます。背景と文字をセットで考えることが、読みやすい設定の基本です。[1][2]
マウスオーバーはクリックではない
マウスオーバーは、ボタンの上へポインターが乗っている状態です。クリックして処理を実行した状態ではありません。「ポイントで色が変わること」と「登録処理が完了したこと」を同じ合図にしないようにしてください。処理結果は別のメッセージなどで伝えます。
| 状態 | 利用者の動作 | 確認する表示 |
|---|---|---|
| 通常 | ポインターを外している | 通常の背景色と文字色 |
| ポイント | ポインターを重ねている | HoverColorとHoverForeColor |
| 押下 | ボタンを押している | 押下時の色と文字色 |
| フォーカス | Tabなどで選択している | 選択位置が分かる表示 |
| 無効 | 使用できない設定 | 操作不可と分かる状態 |
ボタンの色を設計するときは、通常とポイントだけでなく、押下とフォーカスも確認します。ポインターを外してもボタンが選択されたままの場合は、ポイント状態ではなくフォーカスの表示を見ている可能性があります。操作と状態を分けると、設定の取り違えを防げます。

プロパティシートで背景色と文字色を設定する
まず対象フォームをコピーし、デザインビューで開きます。色を変えたいコマンドボタンを1つ選択してF4を押し、プロパティシートの[書式]タブを表示します。フォーム全体や隣のラベルを選んでいると、必要な設定項目が出ません。
2つのプロパティの対応
[ポイント時の色]は背景、[ポイント時の前景色]は文字の色として設定します。前景色という言葉に慣れていない場合は「手前に描かれる文字の色」と考えると分かりやすくなります。プロパティ欄のカラービルダーから選ぶ方法と、VBAで値を設定する方法があります。[1][2]
| 日本語の項目 | VBAのプロパティ | 設定するもの |
|---|---|---|
| ポイント時の色 | HoverColor | ポインターを重ねたときの背景 |
| ポイント時の前景色 | HoverForeColor | ポインターを重ねたときの文字 |
| 背景色 | BackColor | 通常時の背景 |
| 前景色 | ForeColor | 通常時の文字 |

1つのボタンで設定と確認を終える
1. フォームをデザインビューで開き、対象のコマンドボタンを選びます。
2. [書式]の[ポイント時の色]を開き、背景色を設定します。
3. [ポイント時の前景色]を開き、背景に対して読める文字色を選びます。
4. フォームを保存し、フォームビューへ切り替えます。
5. ポインターを外した状態と重ねた状態を比較します。
6. 実行して問題のない練習用ボタンで、クリックとTab移動も確認します。
デザインビューは部品を配置するための画面なので、利用時のマウス操作の確認には適しません。設定値を入力した後は必ずフォームビューに切り替えます。ボタンのクリック処理が削除などの操作を実行する場合は、色の確認だけで本番処理を実行しないよう、コピーや練習用画面を使ってください。
複数選択は1個の確認後に使う
同じ用途の複数ボタンを選び、共通の書式を設定する方法もあります。ただし、最初から全ボタンへ一括適用すると、主操作と取消操作の違いまで失われる場合があります。1個で配色と動作を確認し、同じ用途のボタンだけへ広げる方が確認しやすくなります。

読みやすく迷わない色の組み合わせにする
ポイント時の色は、利用者が今どのボタンを指しているか分かる程度の変化にします。通常時と全く別の意味に見える配色へ変えるより、同系色で少し濃くするなど、画面内で統一したルールを設けると理解しやすくなります。
配色例をそのまま正解としない
例えば通常の背景をRGB(184, 54, 54)、ポイント時をRGB(150, 35, 35)、文字を白にする組み合わせは、赤系の主操作ボタンの一例です。ただし、テーマによる陰影、表示倍率、画面の明るさでも見え方が変わるため、実際のフォームで読みやすさを確認してください。
| 役割 | 通常時の考え方 | ポイント時の考え方 |
|---|---|---|
| 主要な登録や検索 | 画面内で分かる色 | 同系色で変化を付ける |
| 取消や閉じる | 主操作より控えめ | 文字の読みやすさを維持 |
| 削除など慎重な操作 | 名称で操作内容を明示 | 色だけで危険性を伝えない |
ボタン名で操作内容を説明する
「実行」だけでは、検索なのか保存なのか分かりません。「条件で検索」「変更を保存」「画面を閉じる」など、押した後の動作が想像できる標題を付けます。色の差を認識しにくい環境でも、文字で用途を判断できるようにするためです。
取消と登録を色だけで区別している場合は、ボタン名や位置も合わせて整理します。また、マウスオーバー時だけ補足情報を見せる設計では、キーボードやタッチの利用者が情報を得にくくなります。重要な説明は、通常の状態でも読める場所へ置きましょう。

設定が反映されない原因を順番に確認する
色が変わらない場合は、選択部品、確認している状態、テーマ、VBAの順に調べます。設定項目が存在することと、現在の表示条件でその色が見えることは別です。最初からMouseMoveイベントを追加すると、元の原因が分からないまま処理が増えることがあります。
| 症状 | 確認する場所 | 対処の方向 |
|---|---|---|
| 設定項目が見つからない | 部品の種類と選択対象 | 標準コマンドボタンを1個選ぶ |
| 文字だけ変わった | HoverForeColorとHoverColor | 背景と文字を分けて設定 |
| デザインでは変化がない | 確認ビュー | フォームビューで操作 |
| クリック後だけ見た目が違う | 押下・フォーカス | ポイント状態と分けて確認 |
| 閉じて開くと元に戻る | フォーム保存、起動時コード | 保存状態とイベントを確認 |
| PCにより色味が異なる | テーマ、表示設定、Access環境 | 同じ設定値で配布先を確認 |
テーマと独自色を区別する
UseThemeはOfficeのテーマに定義されたスタイルを使うかどうかを表すプロパティです。既定ではTrueです。また、HoverThemeColorIndexはポイント時の色に対応するテーマ色を表します。テーマに連動する色と、具体的なRGBで指定する色を混在させると、意図を追いにくくなる場合があります。[3][4]
テーマの使用を切り替えると、色以外の枠や陰影も変わり得ます。「表示が違うから全ボタンのテーマを無効にする」と決めつけず、コピー上の1個で比較してください。テーマに合わせる方針なのか、画面独自の色を使う方針なのかを先に決めます。
既存のMouseMoveや起動時処理を確認する
フォームの[読み込み時]、ボタンの[マウス移動時]などに、背景色やテーマを変更するコードがないか確認します。プロパティシートで指定した値が、開いた後の処理で書き換えられている可能性があります。共通の画面初期化処理を使っている場合は、そこも確認対象です。
原因を調べるときは、変更前の値とイベントの内容を記録します。設定だけ戻してもVBAが再び上書きするなら改善しません。見た目を管理する場所を決め、同じ状態を複数箇所で重ねて制御しないことが保守のポイントです。

業務フォームの操作性改善を検討している方へ
まずは記事の手順をコピー上で試し、設定と結果を確認してください。複数の画面や利用者に影響する、保存や集計の仕組みから見直したい場合は、対象ファイルの形式・症状・期待する動作を整理してご相談ください。
VBAで同じ設定をまとめて適用する
1個のボタンならプロパティシートの方が簡単です。画面を開く際に共通色を適用したいなどの理由がある場合は、VBAでHoverColorとHoverForeColorを設定できます。マウスが動くたびに色を変更するイベントを追加する必要はありません。[1][2]
Form_Loadへ追加する最小例
以下は、フォーム上に「cmd検索」という名前の標準コマンドボタンがある場合の例です。表示文字の[標題]ではなく、プロパティシートの[名前]を確認してください。RGBは赤・緑・青の強さをそれぞれ0~255で指定する関数です。
Private Sub Form_Load()
With Me.cmd検索
.HoverColor = RGB(150, 35, 35)
.HoverForeColor = RGB(255, 255, 255)
End With
End Sub
この例はポイント時の2色だけを設定します。通常時の背景色や押下時の色は別の設定です。テーマや既存書式によって見え方が変わる場合があるため、コピー上のフォームで確認してください。既にForm_Loadがある場合は、同じ名前のプロシージャをもう1つ作らず、既存処理の適切な位置へ追記します。
設定と動作確認の順番
フォームの[読み込み時]を[イベントプロシージャ]にし、VBEで該当処理を開きます。追加後はコンパイルして名前の誤りなどを確認し、フォームを閉じて再度開きます。コードはフォームを開くときに動くため、デザインビューで保存しただけでは実行されません。
コードが動かない場合は、イベントの設定、対象ボタンの名前、マクロ・VBAの信頼設定を確認します。色変更のために、出所不明のファイルのコードを安易に有効化する必要はありません。自分で管理している検証用ファイルで、既存の運用ルールに沿って確認してください。
MouseMoveで制御する場合の追加負担
独自部品などでMouseMoveを使う場合は、ポインターがボタンから離れたときに元の色へ戻す処理も考える必要があります。隣の部品へ直接移動する場合なども含めると、復帰処理の置き場所が増えます。標準コマンドボタンのポイント色で要件を満たせるなら、標準プロパティを使う方が構成を整理しやすくなります。

マウス以外の操作と配布先で確認する
完成後はポインターの移動だけでなく、Tabキーでボタンへ移動できるか、フォーカスが見えるか、名称が省略されていないかを確認します。色が変わることだけを完成条件にすると、実際の業務で使いにくいボタンになる場合があります。
確認用チェックリスト
- 通常時とポイント時の両方で、ボタンの文字を読めるか確認します。
- 押下時と、ポインターを外した後の表示を確認します。
- Tabキーで順番に移動し、現在位置が分かるか確かめます。
- 無効なボタンが、使用できるように見えないか確認します。
- Windowsの拡大表示やコントラスト設定を使う環境で確認します。
- 配布先のAccessでも、フォームを開き直して設定が適用されるか確かめます。
タッチではポイント状態に頼らない
タッチ操作は、マウスのように常にポインターを乗せた状態を使えるとは限りません。そのため、ポイント時にだけ「ここを押してください」という説明が出る構成にしないようにします。通常時の名称、余白、配置で主要な操作を判断できることが基本です。
ボタンが小さすぎる場合は、色より先に大きさと間隔を見直します。検索ボタンと削除ボタンが密着しているなど、誤操作を起こしやすい配置は、ポイント色だけでは解消できません。配色をきっかけに、操作全体の分かりやすさを確認しましょう。
変更内容を画面単位で記録する
通常・ポイント・押下の色、使用したテーマ、対象ボタン、共通処理の場所を簡単に残します。フォームごとに別のルールを増やすと、次の改修で統一しにくくなります。同じ役割のボタンは同じルールにし、例外には理由を記録しておくと維持しやすくなります。

よくある質問
通常のコマンドボタンであれば、ポイント時の色とポイント時の前景色をプロパティシートで設定できるため、VBAは必須ではありません。まず1個のボタンを選び、背景と文字を設定してフォームビューで確かめます。複数画面で共通の色を適用するなど、コードで管理する理由があるときにVBAを検討してください。見た目だけの変更のためにMouseMove処理を増やすと、ポインターが離れた際の復帰処理まで必要になり、保守が複雑になります。
ポイント時の色はボタンの背景、ポイント時の前景色はボタン上の文字の色です。例えば背景を濃い赤に変えても、文字が暗いままでは読みにくくなる場合があります。背景と文字をセットで指定し、ポインターを重ねた状態で実際に読めるか確認してください。また、通常時の背景色や前景色とは別の設定です。クリックしている間の色や、Tabキーで選択したときの見え方も異なるため、状態ごとに分けて確認すると設定を取り違えにくくなります。
まず、デザインビューで標準のコマンドボタンを1個だけ選択し、F4でプロパティシートを表示してください。フォーム全体、ラベル、画像などを選んでいると、同じ項目は出ません。上部の選択対象と部品名を確認し、[書式]または[すべて]から探します。Accessのバージョンや部品の種類により項目の表示も異なります。既存画面で分からない場合は、コピーに新しい標準ボタンを置いて比較すると、部品固有の問題かを切り分けられます。
デザインビューで見ている、背景ではなく前景色を変えた、テーマの影響がある、起動時のVBAで上書きされているなどの原因が考えられます。まずフォームビューでポインターを乗せ、通常時と比較してください。次に対象ボタンの設定値とUseTheme、既存のLoadやMouseMove処理を確認します。いきなり全ボタンのテーマを無効化せず、コピー上の1個で変更前後を比較します。閉じて開くと戻る場合は保存状態とイベントを優先して調べます。
独自の動きを作るためにMouseMoveを使うことはできます。ただし、ボタンを離れた際に元の色へ戻す処理や、隣の部品へ直接移動した場合の挙動も必要になります。標準コマンドボタンのポイント色で実現できる内容なら、HoverColorとHoverForeColorから始める方が分かりやすくなります。既にMouseMoveがある場合は、標準プロパティと二重に色を制御していないか確認してください。色の設定場所を統一すると、後の修正も追いやすくなります。
ボタン自体はキーボードやタッチでも操作できますが、マウスオーバーと同じ状態が常に発生するとは限りません。Tabキーではフォーカスの表示、タッチでは通常時の名称と配置が特に重要です。色が変わったときだけ操作内容が分かる設計にせず、最初から「検索」「変更を保存」などの標題を付けます。さらに、ボタンの大きさ、間隔、Tab移動順、無効状態を確認してください。利用者が使う表示倍率やコントラスト設定でも見え方を確認すると安心です。
まとめ
Accessボタンのマウスオーバー色は、背景のHoverColorと文字のHoverForeColorを分けて設定します。フォームビューで状態を比較し、反映されない場合はテーマと既存イベントを確認しましょう。配色に加えて名称、配置、キーボード操作まで整えると、実際に使いやすい画面へつながります。
業務フォームの操作性改善を検討している方へ
まずは記事の手順をコピー上で試し、設定と結果を確認してください。複数の画面や利用者に影響する、保存や集計の仕組みから見直したい場合は、対象ファイルの形式・症状・期待する動作を整理してご相談ください。
関連記事
参考情報
[1] Microsoft HoverColor
https://learn.microsoft.com/en-us/office/vba/api/access.commandbutton.hovercolor
[2] Microsoft HoverForeColor
https://learn.microsoft.com/en-us/office/vba/api/access.commandbutton.hoverforecolor
[3] Microsoft UseTheme
https://learn.microsoft.com/en-us/office/vba/api/access.commandbutton.usetheme
[4] Microsoft HoverThemeColorIndex
https://learn.microsoft.com/en-us/office/vba/api/access.commandbutton.hoverthemecolorindex