概要
| この記事の結論 Accessフォームで桁数や区切り文字をそろえて入力してもらうには、テキストボックスの[定型入力]を設定します。例えば郵便番号なら「000\-0000;1;_」を使い、7桁の数字を「123-4567」の形で入力する補助ができます。この例では、ハイフンを表示しても保存値には含めません。郵便番号の保存先は、先頭のゼロを保持できる文字列にします。 定型入力は、入力の形をそろえるための設定です。必須入力、実在する番号かの確認、取り込んだデータ全体の検査をすべて代行する機能ではありません。本記事ではWindows版Accessのデスクトップデータベースを対象に、フォームへの設定手順、記号の読み方、保存値の確認方法、向かない項目まで説明します。 |
この記事でわかること
- 定型入力・書式・入力規則・必須入力の違い
- フォームに郵便番号の入力マスクを設定する手順
- ハイフンを保存する場合と表示だけにする場合の違い
- 設定が効かない原因と、変更後に確認したい入力テスト
この記事の主な内容
- 定型入力でできることと他の設定の違い
- フォームに郵便番号の定型入力を設定する
- 定型入力の3セクションと記号を理解する
- 項目に合った入力方法を設計する
- 設定が効かない原因と変更後の確認
- よくある質問
想定読了時間:約13分~16分
1. 定型入力でできることと他の設定の違い
定型入力とは、入力する文字の種類や位置を決め、決まった形で入力しやすくする仕組みです。「入力マスク」とも呼ばれ、プロパティ名はInputMaskです。郵便番号や固定桁の管理番号など、形式が明確な項目に向きます。必要な制御をすべて定型入力に集めず、他の設定と役割を分けることが大切です。
| 設定 | 主な役割 | 郵便番号での考え方 |
|---|---|---|
| 定型入力 | 入力時の文字の種類・位置をそろえる | 3桁と4桁に区切って入力を補助 |
| 書式 | 保存された値の表示方法を整える | 見せ方を整える。保存値とは別 |
| 入力規則 | 保存する値が条件を満たすか確認 | 必要な桁数や業務上の条件を検査 |
| 値要求など | 空のまま保存できるかを決める | 必須項目ならNullを許可しない |

例えば定型入力に「0」を7個指定しても、そのフィールド自体の必須設定とは別です。入力を始めたときに必要な桁数と、まったく入力しないレコードを認めるかは、分けて決めます。また、「123-4567」の形で入力できたとしても、その番号が実在する地域を示すことまで確認できたわけではありません。
先に「保存する形」を決める
利用者へ見せたい形と、テーブルへ保存したい形を決めます。郵便番号を数字7文字でそろえる運用と、ハイフン込み8文字でそろえる運用では、検索条件や外部出力の扱いが変わります。既存データがある場合は、現状の保存値と、CSV出力・住所検索などの連携仕様を調べてから設定します。
2. フォームに郵便番号の定型入力を設定する
まずコピーしたデータベースで、郵便番号を保存するフィールドと、フォームの入力欄を確認します。本記事の例は、短いテキスト型のフィールド「郵便番号」を、テキストボックス「txtPostalCode」に連結する想定です。数値型に保存すると先頭ゼロを失うため、計算しない番号は文字列として扱います。
手順1:フィールドと連結先を確認する
テーブルのデザインビューで「郵便番号」のデータ型を確認します。ハイフンを保存しない7桁運用なら、保存値は7文字です。ハイフンを保存する運用なら8文字分が必要になります。既存フィールドのサイズを小さくする変更は、値が切れる原因になるため、現在の最大長とバックアップを確認してから行ってください。
次にフォームをデザインビューで開き、郵便番号のテキストボックスを選択します。プロパティシートで[名前]と[コントロールソース]を確認し、見出し用ラベルを選んでいないかも見ます。[コントロールソース]が空欄なら非連結なので、入力した値がそのままテーブルの郵便番号に保存される構成ではありません。
手順2:定型入力へ設定文字列を入れる
対象のテキストボックスを選択した状態で、プロパティシートの[すべて]タブなどから[定型入力]を見つけます。次の文字列を直接入力し、フォームを保存します。区切りのセミコロンや末尾のアンダースコアも含めて設定してください。バックスラッシュは日本語環境で円記号のように見える場合があります。
000\-0000;1;_
ここで「0」は、その位置に数字が必要であることを示します。「\-」はハイフンを文字として表示する指定です。後ろの「;1」は区切り文字を保存値に含めない設定、「;_」は未入力の位置をアンダースコアで示す設定です。これらは1つのプロパティに入力する文字列で、VBAコードではありません。
手順3:フォームビューで新規入力する
フォームビューへ切り替え、練習用レコードで「0123456」のように先頭ゼロを含む7桁を入力します。この値は形式確認用の例で、実在する郵便番号として使うものではありません。入力欄のハイフンと桁の案内を確認し、別レコードへ移動して保存した後、元のレコードを開き直します。

手順4:見た目ではなく保存値も確認する
テーブルやフォームに同じマスクがあると、ハイフンが表示されるだけで保存されていない場合があります。画面のコピーにも区切り文字が付く場合があるため、貼り付けた文字だけで保存値を判定しないようにします。保存値の長さとハイフンの有無を、選択クエリの計算列などで確認すると判断しやすくなります。
練習用テーブル名を「T_顧客」とした場合、次のSELECT文で確認できます。これは読み取り用の例で、データを変更しません。実際のテーブル名・主キー名・フィールド名へ置き換えます。7桁運用の正常例では、保存文字数が7、ハイフン位置が0になります。桁数だけでは、すべて数字かどうかまでは判定できません。
SELECT [顧客ID], [郵便番号],
Len([郵便番号]) AS 保存文字数,
InStr(1, Nz([郵便番号], “”), “-“) AS ハイフン位置
FROM [T_顧客];
3. 定型入力の3セクションと記号を理解する
定型入力は、最大3つの部分をセミコロンで区切ります。最初の部分が入力の形、2つ目が区切り文字などの保存方法、3つ目が未入力位置の表示です。同じ「0」でも、最初の部分にある場合と2つ目にある場合では意味が異なるため、文字だけでなく位置も見て読み取ります。

| 部分 | 今回の値 | 意味 |
|---|---|---|
| 第1部分:入力の形 | 000\-0000 | 数字3桁+固定ハイフン+数字4桁 |
| 第2部分:固定文字の保存 | 1 | ハイフンは表示し、保存しない |
| 第3部分:未入力位置の表示 | _ | 入力する位置をアンダースコアで示す |
ハイフンを保存する場合としない場合
第2部分を「0」にすると、マスクの固定文字も保存する設定になります。例えば「000\-0000;0;_」ならハイフン込み、「000\-0000;1;_」なら数字のみを保存する運用です。どちらが適切かは、既存システムや出力先が期待する形式に合わせて決めます。見た目が同じでも保存値が違う点に注意してください。

| 設定例 | 入力欄での例 | 保存値の例 |
|---|---|---|
| 000\-0000;0;_ | 012-3456 | 012-3456(8文字) |
| 000\-0000;1;_ | 012-3456 | 0123456(7文字) |
この設定変更だけで、過去のデータが一括変換されるわけではありません。ハイフンあり・なしが混在する場合は、既存値を調べ、変換の必要性と検索・出力への影響を別に確認します。いきなり更新クエリを実行するのではなく、対象件数と変換後の想定値を選択クエリで確認してから進めます。
よく使う記号を必要な範囲で覚える
| 記号 | 入力時の意味 | 使うときの注意 |
|---|---|---|
| 0 | 数字の入力が必要 | フィールド全体の必須設定とは別 |
| 9 | 数字の入力を省略できる | 固定7桁の郵便番号には安易に使わない |
| L/? | 文字が必須/任意 | 対象文字の要件を実環境で確認 |
| A/a | 文字または数字が必須/任意 | 許可する文字種の業務条件と照合 |
| >/< | 後続の文字を大文字/小文字にする | 元の大文字小文字を残す必要がないか確認 |
| バックスラッシュ | 直後の文字を固定文字として表示 | 区切り記号を意図どおり表示する |
記号を増やせば入力品質が必ず上がるわけではありません。例外のある項目を厳しく固定すると、正しいデータを登録できなくなります。まず受け付ける値と受け付けない値を具体例で決め、その区別に必要な設定だけを使います。複雑な条件は入力規則や保存前の確認処理へ分けると、保守しやすくなります。
必須項目かどうかは別に設定する
郵便番号を必須にする場合は、保存先フィールドの[値要求]などを確認します。短いテキスト型ではNullと長さ0の文字列は別なので、[空文字列の許可]も併せて確認してください。例えば必須項目なら「値要求:はい」「空文字列の許可:いいえ」を検討します。既存の空欄がある場合は、適用前に件数と対応を調べます。

任意項目なら、未入力を許可した上で「入力する場合は7桁」というルールにできます。利用者には「郵便番号は任意です。入力する場合は7桁の数字で入力してください」のように案内すると、空欄でよいのか迷いにくくなります。エラーが出たときは、入力マスクだけでなく、値要求や入力規則のどれが原因かを確認します。
入力ルールと保存形式を相談したい場合
既存データに表記ゆれがある、外部連携に合わせて保存形式を変えたい、複数フォームの設定をそろえたい場合は、画面だけでなくデータの入口全体を整理します。Accessの教科書へ相談する際は、対象項目、現在の保存例、受け付けたい値と困る値を用意すると検討を進めやすくなります。
4. 項目に合った入力方法を設計する
定型入力は、文字数や並びが決まった項目に向きます。反対に、長さや記号に多くの例外がある項目では、通常の入力欄と分かりやすい入力案内、必要な入力規則を組み合わせた方が使いやすい場合があります。入力する人が「正しい値なのに登録できない」と困らない設計を目指します。

| 項目 | 定型入力との相性 | 設計で考えること |
|---|---|---|
| 国内の7桁郵便番号 | 固定形式なので向く | 先頭ゼロ、ハイフン保存、必須か任意か |
| 固定桁の社内管理番号 | 形式が明確なら向く | 桁数変更や将来の番号体系 |
| 電話番号 | 桁・区切りに例外が多い | 固定電話、携帯、国際番号、内線 |
| メールアドレス | 単純な固定マスクは不向き | 文字数・記号・ドメインの多様性 |
| 氏名・住所 | 固定形式では扱いにくい | 外国語、長い名称、必要な記号 |
| 日付 | 入力方法を選ぶ | 日付選択とマスクを同時に前提にしない |
電話番号を一つの型に押し込めない
携帯電話と固定電話では桁の区切りが異なり、国際番号や内線を扱う業務もあります。すべての電話番号を同じ並びへ固定すると、連絡先を正しく登録できないことがあります。国内番号だけなのか、海外取引先を含むのかを先に確認し、必要なら国番号や内線を別項目に分けることも検討します。
メールアドレスと日付は別の入力方法も検討する
メールアドレスは長さや使われる記号に幅があるため、郵便番号と同じ考え方の固定マスクには向きません。「@が含まれる」といった簡単な条件だけで、実在して受信できるアドレスだと判定することもできません。形式の確認と、実際に利用できるかの確認を分けて設計します。
日付/時刻型で日付選択コントロールを使う場合、定型入力との併用を前提にしないでください。Microsoftは日付選択と入力マスクの非互換を案内しています。カレンダーで選ばせるのか、キーボードで決まった形を入力させるのかを決め、利用者の操作方法に合う方を選びます。保存先は文字列の日付と混同しないようにします。
5. 設定が効かない原因と変更後の確認
設定が効かない場合は、変更した対象と実際に入力している場所が同じかを確認します。テーブルのフィールド、クエリの列、フォームのテキストボックスは、それぞれ設定を持てます。テーブル側を変更しただけで、すでに存在するすべてのフォームへ意図した設定が反映されたと決めつけないようにしましょう。
| 症状 | 確認すること | 次の対応 |
|---|---|---|
| 入力欄に変化がない | 正しいテキストボックスか | 名前・コントロールソース・定型入力を確認 |
| 入力中と表示後で見え方が違う | [書式]も設定されていないか | 入力時の補助と表示書式を分けて確認 |
| 空欄を保存できてしまう | 値要求・空文字列の許可 | 必須か任意かを保存先で決める |
| 既存値が変わらない | 新規入力の設定とデータ変換の違い | 保存値を調べて別に移行を計画 |
| 取り込みデータだけ不正 | 入力マスクを通らない経路 | 入力規則や取込時の検査を用意 |
インポートや更新クエリは別に検査する
入力マスクは、利用者がコントロールへ直接入力する場面の補助です。インポート、アクションクエリ、VBAやマクロによる値の設定などでは、同じように適用されない経路があります。画面で不正な値を入力できないことだけを、データベース全体に不正値が入らない根拠にしないでください。
共通して守る条件は、保存先の型・値要求・入力規則や、取り込み処理の検査として設計します。外部データベースのリンクテーブルなら、その保存先の制約も確認します。例えば取込用の一時テーブルで、桁数、文字種、空欄、重複などを調べ、問題行を確認してから本番へ反映する流れが考えられます。
公開前は正常な入力と失敗する入力を試す
7桁の正常例だけでなく、先頭ゼロ、桁不足、桁超過、文字混在、空欄、貼り付け、取り込みを確認します。設定文字列が保存できたことだけで完了にせず、保存後にレコードを開き直し、テーブルの値や外部出力も確認してください。次の表は、テスト時に記録する観点です。実機での結果を記入して判定します。

| テスト条件 | 確認する結果 | 見落としやすい点 |
|---|---|---|
| 7桁の数字 | 入力・保存・再表示ができる | マスク設定と保存値の一致 |
| 先頭が0の7桁 | 先頭ゼロが保存される | 数値型にしていないか |
| 6桁・8桁 | 意図しない値として残らない | 入力中と保存時の挙動 |
| 文字や全角を含む値 | 採用する文字種の要件を満たす | IMEや貼り付け時の扱い |
| 空欄 | 必須/任意の方針どおりになる | Nullと空文字列 |
| ハイフンあり・なしの貼り付け | 桁ずれや欠落がない | 手入力だけで判断しない |
| 既存レコードを編集 | 過去の値を壊さない | 以前の保存形式との混在 |
| インポート・更新処理 | 別の検査で条件を満たす | 入力マスクへの依存 |
IMEは日本語入力の状態を制御するもので、保存する値の正しさをすべて保証する機能ではありません。全角・半角の扱いで困る場合は、フォームの日本語入力制御も確認し、入力支援と保存時の検査を分けて考えます。コピー貼り付けや外部取込の値も、同じ業務ルールで扱えるようにします。
まとめ
定型入力は、形式が決まった項目の入力を助ける機能です。郵便番号では、文字列の保存先、3桁と4桁のマスク、ハイフンの保存方法、必須か任意かをセットで決めます。変更後は見た目だけでなく保存値と入力経路を確認し、既存データの変換や外部取込の検査を別に設計すると、表記ゆれを抑えやすくなります。
6. よくある質問
定型入力は、入力する文字の種類や位置を決めるための設定です。書式は、保存された値をどのように表示するかを整える設定です。両方を設定すると、入力中と表示後で見え方が異なる場合があるため、片方だけを見て判断しないでください。例えばハイフンが見えていても、保存値に含まれているとは限りません。保存文字数や区切り文字の有無を選択クエリなどで確認すると、入力補助・表示・保存の3つを分けて調べられます。外部出力の形式も併せて確認しましょう。
保存先を数値型にしている可能性があります。郵便番号は計算する数量ではないため、先頭ゼロを保持できる短いテキスト型などで保存します。入力欄の見た目だけを整えても、すでに失われたゼロが正しく復元されたとは限りません。既存データを変更する場合は、元資料や正しい番号との照合が必要です。新しい設定では先頭ゼロを含む練習用データを入力し、保存後に開き直して値を確認してください。CSV出力先で再び数値化されないかも確認すると安心です。
既存システムと出力先が期待する形式に合わせて決めます。数字7文字で統一するなら第2部分を1、ハイフン込み8文字で保存するなら0にする方法があります。表示が同じでも、保存値が違えば検索や連携に影響します。設定前に現在のデータ、検索条件、CSV出力や住所検索の処理を確認してください。また、設定を変えても過去の値は一括変換されません。既存値の変換は別の作業として、対象件数と変換後の内容を確認しながら進めます。
マスクの0は、入力する場合にその位置へ数字が必要であることを示します。フィールド全体を必須にする設定とは別です。郵便番号を空欄にしたくない場合は、保存先フィールドの[値要求]を確認し、短いテキスト型では[空文字列の許可]も併せて設定します。任意項目なら、未入力を認める方針でも構いません。既存レコードに空欄がある場合は、その件数と扱いを調べてから変更してください。エラー文も、利用者が何を入力すればよいか分かる表現にすると使いやすくなります。
すでに作られたフォームの設定まで、必ず意図どおりそろうと考えないでください。フォームのテキストボックスも独自の定型入力プロパティを持つため、実際に使う入力欄の設定を確認します。特に同じフィールドを複数フォームで編集する場合は、対象画面を一覧にして照合すると漏れを減らせます。部品の名前とコントロールソースを確認し、見出し用ラベルを変更していないかも見ます。変更後は各フォームから新規入力と既存値の編集を試し、保存結果を確認しましょう。
フォームでの手入力と同じ検査が自動的に行われるとは考えないでください。入力マスクは、インポートやアクションクエリなどでは適用されない経路があります。外部データは、取込時のチェックや保存先の入力規則などで別に検査する必要があります。例えば一時テーブルへ取り込み、桁数、文字種、空欄、ハイフンの有無を確認してから本番へ反映します。先頭ゼロが元のExcelですでに消えている場合もあるため、取り込み後だけでなく元データの状態も確認してください。
日付/時刻型の入力欄にマスクを設定した場合は、その影響が考えられます。Microsoftは、日付選択コントロールと入力マスクに互換性がないと案内しています。カレンダーで選ぶ操作を優先するなら、定型入力を外すことを検討し、表示書式や入力規則を別に確認してください。キーボード入力を中心にする場合も、実際の利用者に合うかを確かめます。設定変更後は新規入力だけでなく、既存の日付の表示と保存も確認し、文字列として保存する日付と混同しないようにしましょう。
固定の形式が明確な場合には候補になりますが、例外が多い項目を一つのマスクへ押し込めると、正しい値を登録できなくなります。電話番号は固定電話・携帯・国際番号・内線で扱いが異なり、メールアドレスも長さや記号に幅があります。対象業務で受け付ける例を集め、通常の入力欄と入力案内、必要な入力規則を組み合わせて検討してください。形式が合っていることと、実際に連絡できることも別です。利用者が修正方法を理解できる案内まで用意しましょう。
関連記事
- フォームの基礎:入力画面の役割を確認します。
- プロパティシートの使い方:正しい部品の設定を開きます。
- コントロールソースの使い方:入力欄と保存先を結び付けます。
- フォームの日本語入力制御:IMEによる入力支援を確認します。
入力ミスを減らすフォーム改善を相談する
入力形式をそろえても表記ゆれが残る、必須項目の扱いが統一されていない、外部取込から不正な値が入る場合は、画面と保存先の両方を見直します。Accessの教科書へ、困っている項目と現在の入力例をご相談ください。既存データや連携への影響を含め、改善方法を検討します。
参考情報
Microsoft Support 定型入力で入力形式を制御
https://support.microsoft.com/en-us/access/control-data-entry-formats-with-input-masks
Microsoft Learn TextBox.InputMask
https://learn.microsoft.com/en-us/office/vba/api/access.textbox.inputmask
Microsoft Support 入力規則
https://support.microsoft.com/en-us/access/restrict-data-input-by-using-validation-rules