AccessのFormat関数についてお探しですね。

広告

Accessで見た目をキレイに整える!Format関数の使い方をやさしく解説

Accessで顧客番号や社員番号を「0001」みたいにゼロで埋めたい、日付を「20260105」や「2026年1月5日」みたいにキレイに表示したい、金額にカンマや円マークを付けたい――こんな場面、よくありますよね。

こうした「データの中身はそのままで、見た目だけを整える」ときに便利なのが、AccessのFormat関数です。

この記事では、Format関数を使って日付や数値を思い通りの形に変換する方法を、ゼロ埋め、日付の変換、金額の表示、気をつけるポイントまで、わかりやすくまとめて説明します。

1. AccessのFormat関数って何?見た目を整える基本のキ

AccessのFormat関数は、数値・日付・文字列などを、指定した形式に従って「表示用の文字列」に変えてくれる関数です。

基本の書き方は `Format(値, “書式”)` で、クエリの計算フィールドや、フォーム・レポートのコントロールソース、VBAなど、いろんな場面で使えます。

たとえば、社員IDが数値の「7」として保存されている場合。

これを `Format([社員ID],”0000″)` と書けば、画面や帳票では「0007」みたいに表示できるんです。

ここで大事なのは、**Format関数は元のテーブルのデータそのものを書き換えるわけじゃない**ということ。

あくまで「表示用に整えた結果を返してくれる」機能なんですね。

この考え方は、Accessでデータベースを作るときにすごく大切です。

数値型のIDや金額、日付型の受注日などは、計算したり検索したり並べ替えたりしやすいように、正しいデータ型のまま保存しておきます。

そして、ユーザーに見せる直前だけFormat関数で整える――これが基本の流れです。

Excelだとセルの表示形式を変える感覚で扱いますが、Accessではクエリ、フォーム、レポート、エクスポート用データなど、「どこで整形するか」を意識する必要があります。

保存する値と表示する値を分けて考えることで、あとから集計したり期間で抽出したりするときのトラブルをグッと減らせますよ。

Format関数でよく使う書式記号には、数値用の「0」や「#」、日付用の「yyyy」「mm」「dd」などがあります。

「0」は指定した桁に数字がなくてもゼロを表示してくれて、「#」は数字がある場合だけ表示します。

たとえば `Format(5,”000″)` は「005」になりますが、`Format(5,”###”)` だと「5」になります。

日付では `Format([受注日],”yyyymmdd”)` みたいに指定すると「20260105」という8桁の文字列になって、外部システム向けのCSV出力なんかで使いやすい形式に変換できます。

2. 数値をゼロ埋め・カンマ区切り・円表示にする方法

AccessのFormat関数で特によく使うのが、数値のゼロ埋めです。

社員番号、顧客コード、伝票番号、商品コードなどを桁数を固定して表示したいとき、書式に表示したい桁数分の「0」を並べます。

たとえば4桁固定にしたいなら `Format([顧客ID],”0000″)` と指定します。

元の値が「1」なら「0001」、「25」なら「0025」、「123」なら「0123」と表示されます。

ちなみに、元の値が指定した桁数を超えている場合、たとえば「12345」を4桁の書式で表示しても、ふつうは「12345」みたいに実際の桁数で表示されます。

文字列と組み合わせて、実務で使うコード形式に整えることもできます。

たとえば社員番号を「EMP-0007」みたいに表示したいときは、`”EMP-” & Format([社員ID],”0000″)` と書く方法があります。

また、書式文字列の中に固定文字を入れて `Format([社員ID],”EMP-0000″)` みたいに書ける場合もあります。

ただ、固定文字を複雑に組み合わせる場合や、部署コードなど別のフィールドと連結する場合は、`&` 演算子ではっきり結合したほうが読みやすくて、あとから修正しやすいですよ。

金額や数量を見やすくする場合は、カンマ区切りや小数点以下の桁数指定が便利です。

売上金額を3桁ごとに区切りたいときは `Format([売上金額],”#,##0″)` と指定します。

この書式だと「1500000」が「1,500,000」と表示されて、元の値がゼロでも「0」と表示されます。

もし `#,###` みたいに最後も「#」にすると、ゼロのときに空欄みたいに見えちゃう場合があるので、業務の帳票では `#,##0` を使うほうが安心です。

小数点以下を2桁で揃えたいときは `Format([単価],”#,##0.00″)` みたいに指定すると、「1200」が「1,200.00」と表示できます。

円マークやパーセント表示もFormat関数で整えられます。

たとえば `Format([金額],”\¥#,##0″)` とすれば「¥1,234」みたいな表示にできます。

比率をパーセントで見せたいときは `Format([達成率],”0.0%”)` みたいに指定すると、0.153が「15.3%」として表示されます。

ただし、パーセント書式は値を100倍して表示するので注意が必要です。

すでに「15.3」という値を「15.3%」として見せたい場合は、値の持ち方を見直すか、シンプルに `Format([比率],”0.0″) & “%”` みたいに文字をくっつけるほうが意図に合うことがあります。

3. 日付を好きな表示形式に変換する方法

日付型のデータを外部システムとやりとりしたり帳票に載せたりするとき、Format関数はすごく便利です。

Accessの日付は内部的には日付型として持っていますが、表示するときは `Format([受注日],”yyyy/mm/dd”)` や `Format([受注日],”yyyy年m月d日”)` みたいに指定できます。

たとえば受注日が2026年1月5日の場合、`”yyyy/mm/dd”` なら「2026/01/05」、`”yyyy年m月d日”` なら「2026年1月5日」と表示されます。

月や日を必ず2桁にしたいときは「mm」「dd」、1桁のときは1桁でいい場合は「m」「d」を使います。

外部システムやCSV出力では、スラッシュなしの8桁日付が求められることがあります。

このときは `Format([出荷日],”yyyymmdd”)` と指定すると、「20260105」みたいな文字列を作れます。

逆に、外部から取り込んだ「20260105」みたいな8桁文字列を日付型として扱いたい場合は、Format関数だけじゃなくてCDate関数なんかと組み合わせる必要があります。

たとえば `CDate(Format([取込日],”@@@@/@@/@@”))` みたいに、まず「2026/01/05」の形に整えてから日付型へ変換する、という考え方です。

この処理は表示形式の変更じゃなくて、文字列を日付として認識させる変換なので、目的を分けて理解しておくと混乱しませんよ。

曜日や時刻を含めた表示もできます。

たとえば `Format([来店日時],”yyyy/mm/dd hh:nn”)` とすると「2026/01/05 09:30」みたいに表示できます。

Accessでは分を表す書式に「nn」を使うのが一般的で、Excelの感覚で「mm」を分として使うと月と混同しやすいので注意してくださいね。

曜日を表示したいときは、環境や設定によって表記が変わることがありますが、`Format([日付],”aaaa”)` で曜日名を表示できるケースがあります。

帳票やフォームで曜日まで見せたい場合は、実際のAccess環境で期待どおりの表記になるか確認してから使うと安心です。

日付をFormat関数で整えると、結果は日付型じゃなくて文字列になります。

見た目は日付に見えても、Format後の値に対してDateAdd関数で日数を足したり、日付範囲で正しく抽出したりする用途には向きません。

日付の計算や期間抽出は元の日付型フィールドで行って、最終的にフォームやレポートに表示する段階、またはエクスポート直前のクエリでFormat関数を使う――これが実務的です。

この順番を守ると、見た目を整えながらも、Accessの検索・集計機能をちゃんと活かせますよ。

4. Format関数を使うときに気をつけることと、実務での使い分け

Format関数で一番気をつけたいのは、**戻り値が基本的に文字列になる**ことです。

数値を `Format([ID],”0000″)` で「0007」と表示した時点で、その結果は計算用の数値じゃなくて表示用のテキストとして扱われます。

そのため、Format後のフィールドで並べ替えると、数値の順番じゃなくて文字列の順番になることがあります。

たとえば「2」「10」「100」を文字列として並べ替えると、「10」「100」「2」みたいな順番になっちゃう場合があるんです。

ゼロ埋めで桁数を完全に揃えていれば見た目上の順序が崩れにくいこともありますが、基本は元の数値フィールドで並べ替えるのが安全です。

クエリで使う場合は、表示用フィールドと処理用フィールドを分ける設計がおすすめです。

たとえば一覧表示では `表示用ID: Format([ID],”0000″)` を作って、並べ替えには元の `[ID]` を使います。

売上金額も同じで、画面や帳票では `Format([売上],”#,##0″)` で見やすくして、合計や平均は元の数値型フィールドで計算します。

フォームやレポートでは、Format関数をコントロールソースに直接書く方法のほかに、プロパティの「書式」欄で表示形式を指定する方法もあります。

シンプルな表示調整ならプロパティ、他の文字列とくっつけたり条件付きで整形したりするならFormat関数――という使い分けがしやすいですよ。

Null値への対応も実務では大事です。

フィールドが未入力のNullの場合、Format関数の結果が思ったとおりにならないことがあります。

未入力をゼロとして表示したいなら `Format(Nz([数量],0),”000″)` みたいにNz関数を組み合わせる方法があります。

ただし、Nullを本当にゼロとして扱っていいかは、業務上の意味によります。

「未入力」と「0」は別の意味を持つことが多いので、帳票上だけゼロ表示にするのか、データとしてゼロに変換するのかを分けて判断することが大切です。

AccessのFormat関数で日付や数値を思い通りの書式・表示形式に変換するコツは、**最後に見せる段階で使う**ことです。

ゼロ埋め、カンマ区切り、円表示、8桁日付、年月日表示など、Format関数を覚えると画面や帳票の見やすさはグッと良くなります。

一方で、Format後の値は文字列になるので、計算・抽出・並べ替えには元の数値型や日付型のフィールドを使う必要があります。

「保存するデータは正しい型で持つ」「表示だけFormat関数で整える」という原則を押さえておけば、見た目の整ったAccessデータベースを安全に運用できますよ。

広告