概要
| この記事の結論 Accessフォームのタイトルは、デザインビューでフォーム全体を選び、プロパティシートの標題を変更します。保存名、フォーム内の見出しラベル、Access全体のアプリケーションタイトルは別の設定です。この記事では変更箇所を見分ける方法と基本手順、VBAで状況に応じて切り替える方法、変更が戻る原因を解説します。見た目の変更のためにフォーム名を不用意に変えず、既存の呼び出し処理への影響を抑えて修正できます。 |
この記事でわかること
- フォームの標題は、フォームのタイトル部分に表示する文字列を指定するCaptionプロパティです。
- 標題を変更する基本手順
- 変更が反映されない原因を調べる
- 利用者が迷わないタイトルを設計する
この記事の主な内容
- 変更したいタイトルの場所を見分ける
- 標題を変更する基本手順
- フォーム名と標題を使い分ける
- VBAでタイトルを切り替える
- 変更が反映されない原因を調べる
- 利用者が迷わないタイトルを設計する
- 変更後の確認とまとめ
- よくある質問
想定読了時間:約14分~18分
1 変更したいタイトルの場所を見分ける
フォームの上部に表示されるタイトルは、通常はフォーム全体の[標題]で変更します。VBAではCaptionというプロパティです。ただし画面の大きな見出し、ナビゲーションウィンドウの保存名、Access全体のタイトルは別物です。最初に変更したい文字がどこにあるかを確認しましょう。
例えばフォームを「F_Customer」という名前で保存し、標題を「顧客情報」にする設計ができます。利用者には日本語の分かりやすい名称を見せ、開発時には一定の規則で付けた保存名を使えます。両方を必ず同じ文字に揃える必要はありません。
| 文字が表示される場所 | 変更するもの | 例 |
|---|---|---|
| フォームのタイトル部分やタブ | フォーム全体の標題 | 顧客情報 |
| ナビゲーションウィンドウ | フォームのオブジェクト名 | F_Customer |
| 画面内の大きな見出し | ラベルの標題など | 顧客情報の入力 |
| Access全体の上部 | アプリケーションタイトル | 販売管理システム |
同じ文字でも設定元が違う
ウィザードで作ったフォームでは、保存名と画面上の見出しが似た文字になっていることがあります。しかし連動しているとは限りません。フォームの標題を変えたのに中央の大きな見出しが変わらない場合は、別のラベルを表示している可能性があります。設定元を見分けてから編集します。

2 標題を変更する基本手順
コードを書かずに変更するには、フォームをデザインビューで開いて標題を入力します。保存後はフォームビューへ戻り、閉じて開き直しても反映されるか確認してください。既存システムでは、最初に作業用コピーで変更して、修正前の標題も控えておくと戻せます。
フォーム全体を選ぶ
1. ナビゲーションウィンドウで対象フォームを右クリックし、[デザインビュー]を選びます。
2. F4キーでプロパティシートを開きます。
3. 上部の選択欄で[フォーム]を選びます。ラベルやテキストボックスを選んだ状態のまま編集しないようにします。
4. [書式]タブの[標題]へ、例えば「顧客情報」と入力します。
5. フォームの設計を保存し、フォームビューでタイトル部分を確認します。
6. 一度閉じてから再度開き、設定が維持されているか確認します。
標題が見つからないとき
プロパティシートに表示される項目は、選択対象によって変わります。標題が見つからなければ、まず対象がフォーム全体であるかを確認します。フォームの詳細領域や入力欄が選ばれている場合は、フォームへ選び直してください。版によってタブやメニューの表記が少し異なる場合もあります。
変更後の文字が長すぎると、タイトル部分にすべて表示できないことがあります。設定できる文字数の上限まで使うことを目標にせず、「顧客情報」「受注一覧」など短い業務名を基本にします。補足説明はフォーム内のラベルや説明文へ分ける方が、一覧で複数の画面を開いたときにも見分けやすくなります。

3 フォーム名と標題を使い分ける
表示を変えるだけなら、フォーム名を変更する必要は通常ありません。フォーム名は、VBA、マクロ、他フォームの参照などで使われることがあります。見た目だけを直したい場面で保存名まで変えると、呼び出し元の修正が必要になり、変更範囲が広がります。
呼び出しには保存名を使う
例えば次の処理は「F_Customer」という保存名のフォームを開きます。フォームの標題を「顧客情報」に変更しても、保存名を変えていなければ、呼び出しの文字列を「顧客情報」へ書き換える必要はありません。
DoCmd.OpenForm “F_Customer”
ただし、「標題の変更は絶対に処理へ影響しない」とは言い切れません。独自コードがCaptionの文字列を比較して処理を分岐させている場合などは影響します。既存システムでは、標題をロジックの判定に使っていないかも確認すると安心です。
保存名を変える必要がある場合
名称整理などでフォーム名自体を変更するときは、フォームを開くボタン、マクロ、Formsコレクションでの参照、サブフォームのソース、式の参照先を洗い出します。自動修正されるだろうと任せず、起動から終了まで実際の操作経路で確認してください。標題の変更とは別の改修作業として扱います。
画面内の見出しラベルも合わせたいなら、ラベルを選んでその標題を変更します。ラベルの名前と表示文字も異なるため、例えば名前をlblTitle、標題を顧客情報にすると、コードから参照する部品を特定しやすくなります。

4 VBAでタイトルを切り替える
表示する情報や操作モードに応じてタイトルを変える場合は、VBAからCaptionへ文字列を代入します。フォームを開いた時点の名称を設定するならForm_Load、レコードが変わるたびに名称を変えるならForm_Currentなど、必要なタイミングを選びます。
開くときに固定の標題を設定する
フォームの[読み込み時]イベントを[イベントプロシージャ]にし、フォームモジュールへ次の例を記述します。既にForm_Loadがある場合は別の同名手続きを作らず、必要な行を既存処理へ統合します。単に固定表示したいだけなら、プロパティシートでの設定の方が管理は簡単です。
Private Sub Form_Load()
Me.Caption = “顧客情報”
End Sub
既存レコードと新規入力を区別する
次の例は、フォームにtxtCustomerNameというテキストボックスがある前提です。そのコントロールソースは顧客名のフィールドに設定します。ラベルlblTitleも作り、上部の標題と画面内見出しを同じ処理で更新します。サンプルの部品名は実際の名前へ合わせてください。
Private Sub SetTitleText()
Dim customer As String
Dim titleText As String
If Me.NewRecord Then
titleText = “顧客情報 新規入力”
Else
customer = Trim$(Nz(Me!txtCustomerName.Value, “”))
If Len(customer) = 0 Then
titleText = “顧客情報 名称未入力”
Else
titleText = “顧客情報 ” & customer
End If
End If
Me.Caption = titleText
Me!lblTitle.Caption = titleText
End Sub
Private Sub Form_Current()
SetTitleText
End Sub
Private Sub txtCustomerName_AfterUpdate()
SetTitleText
End Sub
Private Sub Form_AfterUpdate()
SetTitleText
End Sub
NzはNullを空文字に置き換え、Trim$は前後の空白を除くために使っています。Lenで空文字を判定し、名称がない場合も意味が通るタイトルを表示します。新規レコードの保存後にも更新することで、保存済みなのに「新規入力」という表示だけ残る状態を避けやすくします。
Currentだけでは、同じレコードの顧客名を入力し直した直後にタイトルが更新されない場合があります。そこで入力欄のAfterUpdateから同じ処理を呼びます。一方、更新を取り消した際の表示まで厳密に揃える必要がある画面では、既存の取消し処理後にも更新するなど、画面の操作経路に合わせて調整します。
このコードは表示の切替例で、顧客名をデータベースへ保存する処理を置き換えるものではありません。既存イベントの入力チェックや保存処理を消さないようにし、レコード移動、空の名称、新規登録、取消しの各場面で確認します。

フォームのタイトル変更の設定や運用で困っている場合は
まずはコピー環境で本記事の手順を確認してください。フォーム名の変更影響調査、動的表示、利用者向け画面整理など、影響範囲の判断が難しい場合は、Accessの教科書のお問い合わせフォームから状況をご相談いただけます。使用中の版、対象の画面やテーブル、再現手順を整理すると、相談内容が伝わりやすくなります。
5 変更が反映されない原因を調べる
標題を書き換えても戻る場合は、設定箇所、保存、実行時の上書き、開いているファイルの順で確認します。最初からフォーム名やテーブル名を変える必要はありません。実際に画面へ文字を出している仕組みを特定することが近道です。
| 症状 | 確認すること | 対応の方向 |
|---|---|---|
| 画面内見出しだけ変わらない | ラベルやテキストボックスか | その部品の設定を修正 |
| 開くと元の標題へ戻る | LoadやOpenのコード、マクロ | Captionを代入する箇所を統一 |
| 別の顧客へ移ると戻る | Currentのコード | 動的設定の内容を修正 |
| 一部端末だけ古い表示 | 配布ファイルや起動パス | 変更した版へ更新 |
| タイトルが見切れる | タブ幅やウィンドウ幅 | 短い標題と画面内説明に分ける |
| 子の標題が見えない | 埋込みサブフォームか | 親側の見出しラベル等を使う |
Captionの設定箇所を調べる
VBEでCaptionを検索し、どのフォームや部品へ代入しているか確認します。Me.CaptionとMe!lblTitle.Captionでは対象が違います。また、コードだけでなくマクロやフォームのイベント設定も確認してください。起動時とレコード移動時で別々に設定していると、最後に実行した処理の文字列が表示されます。
配布版では原本と利用ファイルを分ける
開発用ACCDBを直しても、利用者が古いACCDEや別フォルダのコピーを開いていれば表示は変わりません。ショートカットの起動先や配布版の識別情報を確認します。ACCDEやRuntimeでの利用を前提にする場合は、原本を修正し、配布用ファイルを作り直して対象端末で確認します。

6 利用者が迷わないタイトルを設計する
タイトルは、業務名と画面の役割が短く分かる表現にします。「商品管理」だけでは参照か入力かが分からない場合は、「商品一覧」「商品情報の入力」などに分けます。開発用の接頭辞や内部クエリ名を、利用者が覚えなければ操作できない画面にしないことが大切です。
状態を表示しても機能は自動で変わらない
タイトルに「参照専用」と付けても、それだけで編集が禁止されるわけではありません。編集許可やボタンの動作は別途制御します。同様に「新規入力」「削除済み」などの表示も、データや画面モードと一致している必要があります。見た目の説明と実際の操作が矛盾しないように確認します。
顧客名を動的に表示すると、画面を見分けやすくなる一方、画面共有やスクリーンショットに名前が映ります。タイトルに載せる情報を必要最小限にし、詳細は画面内で確認する設計も選べます。サンプルコードの通りにすべての顧客名を出すことが、常に最適というわけではありません。
アプリケーション全体のタイトルを変更する
Access全体のタイトルを変更したい場合は、[ファイル]→[オプション]→[現在のデータベース]の[アプリケーションタイトル]を確認します。フォーム単体の標題とは対象が違います。設定後は適用内容を確認し、再起動を求められる場合はデータベースを開き直してください。

7 変更後の確認とまとめ
標題変更は小さな修正に見えますが、利用者が画面を識別する手掛かりです。表示箇所を見分け、固定表示ならプロパティ、状況別表示ならVBAを使い分けます。保存名まで変える必要がある場合は、呼び出し元の確認を含む別の改修として進めます。
| 確認項目 | 期待する結果 |
|---|---|
| 閉じて開き直す | 目的の標題を表示する |
| 画面内の見出し | 標題と矛盾しない |
| 既存レコードの移動 | 選択中の情報に対応する |
| 名称がNullや空文字 | 意味が通る代替表示になる |
| 新規入力と保存後 | 入力状態に合った表示になる |
| 入力取消し | 表示だけ前の値で残らない |
| 別画面からの呼び出し | 保存名の参照が正常に動く |
| 配布先端末 | 更新した版で同じ表示になる |
フォーム名、標題、見出しラベル、アプリケーションタイトルを区別すると、修正箇所が明確になります。まず標題だけで目的を満たせるか確認し、動的表示や名称整理が必要な場合も、表示と処理の役割を分けて設計してください。

8 よくある質問
A. 別のものです。フォーム名はデータベース内に保存されるオブジェクトの名前で、VBAやマクロから開く際の参照に使われます。標題は利用者に表示するタイトルで、Captionプロパティに設定します。例えばフォーム名をF_Customer、標題を顧客情報にできます。画面上の文字だけを変更したい場合は、通常は標題を変更します。保存名まで同じ文字に揃える必要はなく、表示の分かりやすさと開発上の命名規則を両立させられます。
A. フォーム名で呼び出している通常の処理なら、標題だけを変えても参照名は変わりません。例えばDoCmd.OpenFormがF_Customerを指定している場合、標題を顧客情報にしても、その文字列を変える必要はありません。ただし、独自コードでCaptionの文字を比較して分岐させている場合などは影響します。そのため絶対に無関係とは言い切れません。既存システムでは標題への参照を調べ、起動や画面遷移の動作を一度確認すると安心です。
A. 選択している対象を確認してください。テキストボックスやフォームの詳細領域などを選択していると、その対象のプロパティが表示されます。デザインビューでF4を押し、プロパティシート上部の選択欄からフォーム全体を選んで、書式タブを確認します。画面内の見出しラベルを変更したい場合は、逆にそのラベルを選ぶ必要があります。どの文字を変えたいのかと、現在選択している対象が一致しているかを確認すると、設定を探しやすくなります。
A. フォームを開くときのLoadやOpen、レコードを移動したときのCurrentなどで、Captionを設定している可能性があります。まず設計の保存と対象ファイルを確認し、次にVBAのCaption検索やイベント設定を調べます。プロパティシートとコードで別々の文字を設定すると、実行時の処理で表示が変わります。また、修正した原本とは別のACCDEや古いコピーを開いている場合もあります。ショートカットの起動先と配布版も合わせて確認してください。
A. 自動的に一緒に変わるとは限りません。画面内の大きな見出しは、ラベルなど別のコントロールで表示していることが多いためです。フォーム全体の標題を変更した後も古い文字が残る場合は、その見出し部品を選んで設定を確認します。常に同じ文字にしたいなら、固定値を両方で揃えるか、VBAの共通処理からフォームのCaptionとラベルのCaptionを設定できます。どちらかだけ更新されない状態を避けるため、変更後は両方を見比べます。
A. VBAで可能です。レコードが切り替わるCurrentイベントから共通処理を呼び、顧客名をCaptionへ設定します。同じレコードで顧客名を編集した直後にも反映させたい場合は、入力欄のAfterUpdateからも呼びます。Null、空文字、新規レコード、保存後、取消しを考慮し、名称がないときの代替表示を用意してください。ただし顧客名が画面共有などに映るため、タイトルへどこまで情報を載せるかは、利用場面に合わせて決める必要があります。
A. サブフォームは親フォームの枠の中に埋め込まれており、単独ウィンドウのようなタイトル部分が常に表示されるわけではありません。子フォームの標題を設定しても、親画面の見出しが変わるとは限らないためです。親側に「受注明細」などのラベルを置き、必要に応じてそのCaptionを変更する方法が分かりやすいでしょう。子フォームの保存名、枠のコントロール名、親の見出しラベルは別物なので、修正対象を分けて確認します。
A. フォーム単体の標題ではなく、ファイルからオプションを開き、現在のデータベースにあるアプリケーションタイトルを確認します。これはAccess全体の上部に表示する名称に関する設定です。フォームごとのタイトルや画面内ラベルは別に設定します。変更後は適用結果を確認し、再起動を求められた場合はデータベースを開き直してください。例えば全体を販売管理システム、個別画面を顧客一覧とすれば、システム名と作業中の業務を区別できます。
フォームのタイトル変更の設定や運用で困っている場合は
まずはコピー環境で本記事の手順を確認してください。フォーム名の変更影響調査、動的表示、利用者向け画面整理など、影響範囲の判断が難しい場合は、Accessの教科書のお問い合わせフォームから状況をご相談いただけます。使用中の版、対象の画面やテーブル、再現手順を整理すると、相談内容が伝わりやすくなります。
関連記事
参考情報
1. Form.Caption
https://learn.microsoft.com/en-us/office/vba/api/access.form.caption
2. Form.Load
https://learn.microsoft.com/en-us/office/vba/api/access.form.load
3. Form.Current
https://learn.microsoft.com/en-us/office/vba/api/access.form.current
4. SubForm.Form
https://learn.microsoft.com/en-us/office/vba/api/access.subform.form
5. Form.Name
https://learn.microsoft.com/en-us/office/vba/api/access.form.name
6. Label.Caption
https://learn.microsoft.com/en-us/office/vba/api/access.label.caption
7. データベースのタイトル変更
https://support.microsoft.com/en-us/access/add-a-custom-title-or-icon-to-a-database
8. Form.NewRecord
https://learn.microsoft.com/en-us/office/vba/api/access.form.newrecord