こんにちは、なかぜんです。
日々Accessでシステム開発をしていると、こんな声を聞きませんか?
- 「文字が小さくて読みにくい」
- 「色の違いが分かりづらい」
- 「Tabキーでの操作が不便」
せっかく作ったフォームでも、使いづらければ意味がありません。
今回は、視認性・操作性を向上させる“アクセシビリティ対応フォーム”の作り方を、AccessとVBAの両面からお伝えします。
アクセシビリティ最適化の考え方
アクセシビリティ=「使いやすさの最適化」
アクセシビリティとは、視力・聴力・操作性などの差異を問わず、すべてのユーザーにとって「使いやすいUI」を設計する考え方です。
Accessでは、以下のような工夫が有効です。
- フォント・色のコントラスト調整
- Tabキー順の最適化
- 補助的なラベルやツールチップの活用
- 操作フィードバックの即時表示
VBAでできるアクセシビリティ強化の実践例
1.Tabキー順を自動設定する
タブオーダーが正しく設定されていないと、キーボード操作に支障が出ます。以下のコードは、すべてのコントロールを読み取り順に並べ直すものです。
' フォームロード時にタブ順を自動で整える例
Private Sub Form_Load()
Dim ctrl As Control
Dim idx As Integer
idx = 0
For Each ctrl In Me.Controls
If ctrl.TabStop = True Then
ctrl.TabIndex = idx
idx = idx + 1
End If
Next ctrl
End Sub
ポイント:ボタンやテキストボックスの「TabStop」がTrueのものだけにTabIndexを設定し、自然な順番に。
2.読みやすいコントラストカラーをVBAで指定
背景と文字の色が近すぎると、視認性が下がります。以下は視認性を高めた設定例です。
' 読みやすいカラーに一括変更
Private Sub SetHighContrast()
Dim ctrl As Control
For Each ctrl In Me.Controls
If TypeOf ctrl Is TextBox Or TypeOf ctrl Is ComboBox Then
ctrl.BackColor = RGB(255, 255, 255) '白背景
ctrl.ForeColor = RGB(0, 0, 0) '黒文字
ctrl.FontSize = 11
End If
Next ctrl
End Sub
ポイント:特に黒背景×白文字、白背景×黒文字は基本中の基本です。
3.スクリーンリーダー対応(ツールチップ活用)
フォーム上の説明文やラベルを補助的に表示したい場合、ControlTipText
を活用しましょう。
' ラベルが不要な場面でも補助説明を
Me.txt郵便番号.ControlTipText = "半角数字7桁で入力してください(例:1234567)"
ポイント:マウスを乗せたときにだけ表示されるため、UIを邪魔せずにガイドが可能です。
よくある注意点と落とし穴
- TabIndexが重複:意図せず順番が狂う原因に。
- 背景と文字色が同系色:薄グレー × 白はNG。
- 小さいフォント:10pt以下は避けるのが無難。
- マウス依存UI:キーボード操作でも十分使える設計に。
応用ポイント:ユーザー設定で切り替え可能にする
フォームに「アクセシビリティモードON/OFF」チェックボックスを用意し、設定に応じて色やフォントを切り替える機能も便利です。
Private Sub chkアクセシビリティ_Click()
If Me.chkアクセシビリティ.Value = True Then
Call SetHighContrast
Else
' 通常スタイルに戻す処理を書く
End If
End Sub
ポイント:ユーザーに選ばせることで、好みに合った表示にでき、現場での定着率もアップします。
まとめ:小さな工夫で大きな違いを
今回ご紹介したように、ちょっとした設定やVBAの工夫で、Accessフォームのアクセシビリティは大きく改善できます。
- タブオーダーの見直し
- 視認性の高い配色
- スクリーンリーダー対応
- ユーザーによる切り替え機能
こうした対応を行うことで、ユーザー満足度の向上、業務効率アップ、そしてクレーム削減にもつながります。
¥2,420 (2025/07/06 14:19時点 | Amazon調べ)
