概要
| この記事の結論 Accessのフォームやレポートの入力欄の枠線は、デザインビューで対象を選び、[書式]の[境界線スタイル]で変更します。実線・点線・透明などを使い分け、必要に応じて色と幅も調整します。変更が見えない場合は[立体表示]やVBAによる上書き、別のラベルを選択していないかを確認しましょう。フォーム全体の外枠とは設定の意味が異なります。 境界線スタイルとは、テキストボックスなどの周囲に表示する線の種類を指定するプロパティです。 |
この記事でわかること
- 入力欄とフォーム外枠を区別
- 立体表示の設定も確認
- 透明は編集禁止ではない
- 印刷結果まで確認
この記事の主な内容
- どの境界線を変えるのか確認する
- プロパティシートで枠線を変更する
- 線の種類と色と幅を使い分ける
- 立体表示との関係を理解する
- VBAで複数の入力欄を整える
- フォームと帳票で見え方を確認する
- 反映されないときの確認と戻し方
- よくある質問
想定読了時間:約12分~16分
どの境界線を変えるのか確認する
Accessの境界線には、入力欄を囲む線、ラベルの枠、帳票の罫線、フォームのウィンドウ外枠などがあります。まず「どの部品の線を変えたいか」を決めます。本記事では主に、フォームとレポートのテキストボックス周囲の線を扱います。
| 対象 | 主な設定場所 | 変更されるもの |
| テキストボックス | 対象コントロールの書式 | 入力欄・表示欄の周囲の線 |
| 付属ラベル | ラベルの書式 | 項目名の周囲の線 |
| 直線・四角形 | 各コントロールの書式 | 区切り線や囲み枠 |
| フォーム全体 | フォームの書式 | ウィンドウの外枠やサイズ変更の方式 |
フォーム全体にもBorderStyleというプロパティがありますが、テキストボックスと設定値の意味は違います。フォームの外枠を変えるコードと、入力欄の点線を変えるコードを混用しないでください。タブ付き表示など、表示方式によっても外枠の見え方は変わります。[S1][S4]

見た目を変えても入力権限は変わらない
枠線を透明にしても、その欄が入力禁止になるわけではありません。反対に、太い線で囲んでも必須入力にはなりません。編集可否は編集ロックや使用可能、必須条件は保存先の値要求や入力規則などで設定します。装飾と業務ルールを分けましょう。
プロパティシートで枠線を変更する
最初は1つの入力欄だけを変更し、結果を確認してから他の項目へ広げると戻しやすくなります。説明用として、フォームに配置したtxt顧客名というテキストボックスの枠線を実線へ変えてみます。
1. 対象フォームを右クリックして[デザインビュー]で開きます。
2. txt顧客名の入力欄をクリックします。
3. F4キーを押し、選択対象がテキストボックスであることを確認します。
4. [書式]タブの[立体表示]を[なし]にします。
5. [境界線スタイル]を[実線]にし、必要なら色と幅も設定します。
6. フォームを保存し、フォームビューで確認します。
[立体表示]を先に[なし]にするのは、縁の立体効果と線種の関係を整理するためです。現在のデザインで影やくぼみが必要な場合は、元の値を記録してから変更してください。付属ラベルを選ぶと、入力欄ではなく見出し側の書式を変えてしまいます。

変更前の値を控える
境界線スタイルだけでなく、立体表示、境界線色、境界線幅を控えます。1つの設定を変えたときに別の設定へ影響することがあるためです。複数人で使うフォームなら、修正前のACCDBを別名で残しておくと、利用者から見づらいと言われた場合にも戻せます。
線の種類と色と幅を使い分ける
テキストボックスのBorderStyleでは、透明、実線、破線、点線などを指定できます。日本語の表示名は環境により多少異なるため、VBAで扱う場合は次の数値と意味を対応させて確認します。[S1]
| BorderStyleの値 | 線の意味 | 向いている用途の例 |
| 0 | 透明 | 枠を見せない表示欄 |
| 1 | 実線 | 通常の入力欄 |
| 2 | 破線 | 補足欄や区切りの強調 |
| 3 | 短い破線 | 細かい区切り |
| 4 | 点線 | 軽い区切り |
| 5 | 間隔の広い点線 | 補助的な区切り |
| 6 | 一点鎖線 | 用途を定義した強調 |
| 7 | 二点鎖線 | 用途を定義した強調 |
用途欄は画面設計の例であり、Accessが意味を自動で割り当てるわけではありません。例えば赤枠をエラーに使うなら、利用者へ理由を示す文章も表示します。複数の線種を無秩序に混ぜると、どの欄へ入力すべきかが分かりにくくなります。

色と太さは別の設定
境界線色は線の色、境界線幅は太さを指定します。透明のまま色だけ変えても線は表示されません。境界線幅を使うには、境界線スタイルが透明以外で、立体表示の条件も満たす必要があります。[S3] 入力可能な欄は見やすい実線、計算結果は控えめな表示など、役割に応じた統一が有効です。ただし、読み取り専用かどうかを枠線だけで伝えず、ラベルや背景、編集ロックの設定と合わせて判断できるようにしてください。
立体表示との関係を理解する
テキストボックスの境界線スタイルは、SpecialEffectがFlat(なし)またはShadowed(影付き)のときに表示されます。それ以外の立体表示からBorderStyleを設定すると、SpecialEffectがFlatへ変わる場合があります。[S1][S2]
そのため、「点線へ変更したらくぼみが消えた」という挙動は、必ずしも不具合ではありません。線種と立体表示は完全に独立した装飾ではなく、相互に関係する設定です。見た目を再現するときは、一方だけをコピーせず両方の値を確認します。
| 目的 | 設定の考え方 |
| 線種・色・幅を明確に指定 | まず立体表示を[なし]で確認 |
| 立体的な縁を使う | SpecialEffect側の見え方を優先して確認 |
| 影付きで文字が窮屈 | 高さや余白も調整して文字欠けを確認 |
| 元のデザインへ戻す | 線種だけでなく元の立体表示も復元 |

プロパティを変える順序もそろえる
既存VBAがフォーム表示時に立体表示を設定していると、デザインビューで決めた線の見え方が変わることがあります。コードで書式を統一するなら、立体表示を決めてから線種・色・幅を設定するなど、処理を1か所へまとめると原因を追いやすくなります。
境界線スタイルの影響範囲が分からない場合
設定だけで解決できない場合や、既存のフォーム・クエリ・外部連携への影響を判断できない場合は、Accessの教科書へご相談ください。対象の画面、起きている症状、変更したい内容を整理すると、調査や改修の範囲を検討しやすくなります。
VBAで複数の入力欄を整える
単一の入力欄を整える場合は、フォームモジュールで次のように指定できます。フォームの読み込み時へ組み込む例で、txt顧客名というテキストボックスが存在することを前提にしています。
Private Sub Form_Load()
With Me!txt顧客名
.SpecialEffect = 0 ‘ なし
.BorderStyle = 1 ‘ 実線
.BorderColor = RGB(184, 54, 54)
.BorderWidth = 1 ‘ 1ポイント
End With
End Sub
これらはテキストボックス向けの設定です。フォーム全体へMe.BorderStyle = 1と書くと、入力欄の実線設定とは違う意味になります。コード内の数値を他のオブジェクトへそのまま転用しないことが大切です。
一括変更する場合も対象を限定する
複数の欄を手作業で選択し、共通の書式を変更する方法もあります。ただし、計算欄や読み取り専用欄など、見た目を区別している部品まで同じ設定にしないでください。VBAでまとめる場合も、対象名を列挙する方法なら変更範囲を追いやすくなります。
Private Sub 入力欄の枠を統一する()
Dim nm As Variant
For Each nm In Array(“txt顧客名”, “txt住所”)
With Me.Controls(CStr(nm))
.SpecialEffect = 0
.BorderStyle = 1
.BorderColor = RGB(120, 120, 120)
End With
Next nm
End Sub
この例は指定した2つのテキストボックスだけを対象にします。実行するには、任意のボタンや既存イベントからこのプロシージャを呼び出します。名前が違う場合や対象がテキストボックス以外の場合は、設計を確認して修正してください。

フォームと帳票で見え方を確認する
フォームは画面での入力、レポートは紙やPDFでの読み取りが主な目的です。同じ色や線幅でも、画面の拡大率や印刷条件で見え方が変わります。帳票では印刷プレビュー、PDF、必要なら実際のプリンターで確認します。
| 確認場面 | 見るポイント |
| 通常のフォーム表示 | 入力欄が背景に埋もれていないか |
| キーボードによる移動 | 選択中の欄や入力位置が分かるか |
| PDF出力 | 細い点線が消えず、文字と重ならないか |
| 白黒印刷 | 赤やグレーの違いが失われても理解できるか |
| 連続フォーム | 特定レコードだけの書式と誤解しないか |
連続フォームでは、同じコントロールが複数レコードの表示に使われます。VBAでコントロールのプロパティを変更するだけでは、特定の1行だけの枠線変更にならないことがあります。行別に強調したい場合は、条件付き書式で指定できる表現などを別途検討します。

反映されないときの確認と戻し方
変更が見えないときは、線を太くする前に対象と設定を調べます。透明の線に色を付けたり、手前に置いた四角形の裏にある入力欄を変更したりしても、期待した結果にはなりません。
| 症状 | 確認すること | 対処 |
| 線が変わらない | 入力欄とラベルの選択 | 対象名を確認して選び直す |
| 色を変えても見えない | スタイルが透明ではないか | 実線などで表示を確認 |
| 開くと設定が戻る | 読み込み時などのイベント | 書式を上書きする処理を整理 |
| 枠を消しても線が残る | 四角形や別部品の重なり | 重なったコントロールを確認 |
| 影付きで文字が欠ける | 入力欄の高さ | 余白と高さを見直す |
| 外枠が想定と違う | フォームの表示方式 | コントロールの線と区別 |

戻すときは、控えておいた立体表示・スタイル・色・幅をセットで戻します。保存した後に変更前の値が分からない場合は、バックアップ側と比較してください。フォームのレイアウト変更とデータ更新を同時に行わず、見た目の改修範囲を限定して進めると確認が容易です。
よくある質問
対象のテキストボックスをデザインビューで選び、書式タブの境界線スタイルを透明にします。立体的な縁が残る場合は立体表示も確認し、必要なら「なし」で見え方を比べてください。ラベルや四角形など別の部品が重なっていると、入力欄の線を消しても枠が残ることがあります。なお、透明にしても編集可能かどうかは変わりません。表示専用にする場合は編集ロックなどを別に設定し、利用者が入力欄と誤認しない見せ方にします。
境界線スタイルと立体表示が関係しているためです。テキストボックスの線種は、立体表示が「なし」または「影付き」の場合に表示されます。それ以外の状態からBorderStyleを設定すると、立体表示が「なし」へ変わる場合があります。元のくぼみと点線を自由に重ねられるとは考えず、どちらの表現を優先するか決めてください。変更前の立体表示、線種、色、幅を控え、一つの入力欄で確認してから他の欄へ適用すると戻しやすくなります。
同じ意味では使えません。テキストボックスでは1が実線を示しますが、フォーム全体のBorderStyleはウィンドウの外枠やサイズ変更の方式を表す別の設定です。VBAを書くときはMeだけを対象にするのか、Me!txt顧客名のように特定の部品を対象にするのかを確認してください。また、タブ付き表示などの方式によってフォーム外枠の見え方は異なります。変更したい線の場所を先に決め、該当するオブジェクトの仕様を参照します。
入力欄の役割が同じなら一括変更は効率的ですが、計算結果、読み取り専用、警告表示などの例外を先に分けてください。全部の枠を同じ色や太さにすると、利用者が入力すべき欄を判断しにくくなることがあります。変更前のフォームを保存し、対象名を一覧にしてから複数選択やVBAで適用する方法が扱いやすくなります。まず一画面で試し、キーボード操作や印刷まで問題がないことを確認してから、他のフォームへ展開しましょう。
フォームの読み込み時やレコード移動時などに、VBAやマクロが書式を上書きしている可能性があります。対象コントロールの名前とBorderStyle、BorderColor、BorderWidth、SpecialEffectを手掛かりに既存処理を調べてください。別のコピーのフォームを開いていないかも確認します。原因が分からないままイベントを削除すると、必要な入力チェックなどまで失うおそれがあります。書式を設定している箇所を特定し、変更の責任を一か所へまとめると保守しやすくなります。
まず印刷プレビューとPDF出力を比較し、どの段階で線が見えなくなるかを確認します。画面では読めても、細い点線や淡い色は縮小印刷やプリンターの条件で目立たなくなることがあります。線幅や色を調整し、白黒でも意味が分かるかを確認してください。入力欄の高さや文字との距離も見直すと、枠だけを太くして窮屈になるのを防げます。帳票は実際の用紙、倍率、出力先で確認し、画面表示だけで完成と判断しないことが大切です。
関連記事
境界線スタイルの影響範囲が分からない場合
設定だけで解決できない場合や、既存のフォーム・クエリ・外部連携への影響を判断できない場合は、Accessの教科書へご相談ください。対象の画面、起きている症状、変更したい内容を整理すると、調査や改修の範囲を検討しやすくなります。
参考情報
[S1] Microsoft TextBox.BorderStyle
https://learn.microsoft.com/en-us/office/vba/api/access.textbox.borderstyle
[S2] Microsoft TextBox.SpecialEffect
https://learn.microsoft.com/en-us/office/vba/api/access.textbox.specialeffect
[S3] Microsoft TextBox.BorderWidth
https://learn.microsoft.com/en-us/office/vba/api/access.textbox.borderwidth
[S4] Microsoft Form.BorderStyle
https://learn.microsoft.com/en-us/office/vba/api/access.form.borderstyle