【Access関数】Format関数の使い方|構文・具体例

アイキャッチ 文字列操作関数

Accessでデータを扱うとき、数字や日付を「見やすく」「わかりやすく」表示することはとても大切です。
たとえば、金額を3桁区切りにしたり、日付を「2025年09月18日」のように和暦で見せたり。
こうした「見た目」の整形を簡単にしてくれるのが Format関数です。この記事では、基本的な構文や、具体的な使い方について解説します。

なお、こちらの記事では関数の基礎知識と共に、Accessで使用できる主な関数を紹介していますので、併せて参考にしてください。

Format関数とは

Format関数は、指定した値を任意の書式に従って「文字列」として返す関数です。

数値、日付/時刻、文字列など、あらゆるデータ型に対して使え、データそのものは変わらず、「見た目」だけを整えることができるのがポイントです。

構文

Formatの基本構文

Format(式,[書式],[週の開始曜日],[年の第1週の定義])

各引数の内容は次のとおりです。

引数必須/省略内容
必須書式を適用する対象の値(数値/日付/文字列など)
書式省略可表示形式を指定する文字列。設定値は【表1】を参照
週の開始曜日省略可週の開始曜日。設定値は【表2】を参照
年の第1週の定義省略可年の第1週の定義。設定値は【表3】を参照

「書式」は省略可能だけど、省略すると、当初指定した値を文字列で返すだけの結果になります。なので通常は「式」と「書式」を指定する使い方が最も多いです。

【表1】主な書式指定文字

書式説明
日付/時刻
yyyy西暦4桁
yy西暦下2桁
ggg年号(令和・平成など)
e和暦の年
mm / m月(mmは1桁月の場合に0埋め)
dd / d日(ddは1桁月の場合に0埋め)
hh / h時(24時間制)
nn / n
ss / s
AM/PM午前/午後表示
数値/通貨
0桁数が足りない場合0で埋める
#桁数が足りない場合は空白(先頭を埋めない)
,(カンマ)千の位区切り
.(ピリオド)小数点
%値を100倍し「%」を付けて表示
\記号をそのまま表示(例:\¥で円記号)
文字列
@文字位置を表す(なければ空白)
&文字列を左詰めで表示
<アルファベットを小文字にする
>アルファベットを大文字にする

【表2】「週の開始曜日」の定数一覧(※本引数を省略した場合は、vbSundayが規定値。)

定数名内容
vbUseSystem0Windows設定に従う
vbSunday1日曜日を週の始まりにする(規定値)
vbMonday2月曜日を週の始まりにする
vbTuesday3火曜日を週の始まりにする
vbWednesday4水曜日を週の始まりにする
vbThursday5木曜日を週の始まりにする
vbFriday6金曜日を週の始まりにする
vbSaturday7土曜日を週の始まりにする

【表3】「年の第1週の定義」の定数一覧(※本引数を省略した場合は、vbFirstJan1が規定値。)

定数名内容
vbUserSystem0Windows設定に従う
vbFirstJan111月1日を含む週を第1週とする(規定値)
vbFirstFourDays24日以上含む最初の週を第1週とする
vbFirstFullWeek3新年に完全に含まれる最初の週を第1週とする

具体例

ここからは具体例として、なるべく多くの種類をご紹介します。

日付/時刻の書式具体例

目的構文結果
月日をゼロなしで表示Format(#2025/9/5#, "m/d")9/5
月日をゼロありで表示Format(#2025/9/5#, "mm/dd")09/05
和暦表示Format(#2025/9/5#, "ggge年mm月dd日")令和7年09月05日
完全な日付(短い書式)Format(#2025/9/5#, "Short Date")2024/09/05
完全な日付(長い書式)Format(#2024/3/5#, "Long Date")2024年9月5日
曜日(英語)表示Format(#2025/9/5#, "dddd")Friday
曜日(英語)先頭3文字Format(#2025/9/5#, "ddd")Fri
曜日(日本語)表示Format(#2025/9/5#, "aaaa")金曜日
曜日(日本語)先頭1文字Format(#2025/9/5#, "aaa")
時刻を表示Format(#2025/9/5 15:05:10#, "hh:nn AM/PM")03:05 PM
日付と時刻を表示Format(#2025/9/5 15:05:10#, "yyyy年m月d日
hh:nn:ss")
2025年9月5日 15:05:10

数値・通貨等の書式指定例

目的構文結果
小数点以下2桁固定Format(1234.5, "0.00")1234.50
桁区切りで整数表示Format(1234.5, "#,##0")1,235
通貨記号を付ける(円)Format(1234.5, "¥#,##0")¥1,235
パーセント表示(小数1桁)Format(0.256, "0.0%")25.6%
数字の後ろに固定文字を付けるFormat(123, "'0000番")0123番

テキスト・その他の書式指定例

目的構文結果
郵便番号の形式に整えるFormat(1234567, "000-0000")123-4567
電話番号の形式に整えるFormat(09011112345, "000-000-0000")090-1111-2345
文字列の一部を大文字に変換Format("abc", ">")ABC
文字列の一部を小文字に変換Format("ABC", "<")abc
文字位置を整えるFormat("ABCD", "@@@-@@@") _ _A-BCD

使用例

上記「具体例」では、様々な構文パターンをご紹介しました。次は、これらの構文をどういう場所で使用するかについてご説明します。

フォーム/レポートのテキストボックスで使用

フォームに配置したテキストボックスのコントロールソースに設定した当日日付に対して、体裁を整えることができます。

この事例では、コントロールソースに、Date関数で本日の日付を表示する際、Format関数で※年※月※日の形式に整えています。

クエリで使用

クエリのフィールドや抽出条件としても活用することができます。

この事例では、元の生年月日フィールドから、「月」のみ表示する「生年月日の月」というフィールドを新たに作成し、抽出条件に「05」を指定することで、5月生まれの社員を抽出しています。

生年月日の月のみ: Format([生年月日],"mm")

なお、Month関数でも上記と同様の結果を効果を出すことができます。(※Month関数の場合は0埋めされません。)

生年月日の月のみ: Month([生年月日])

VBA内で使用

Private Sub cmdCountThisMonth_Click()
    Dim lngCnt As Long
    Dim strCriteria As String
    
    ' 「受注日」が今月の件数をカウント
    strCriteria = "Format(受注日,'yyyymm')=Format(Date(),'yyyymm')"
    lngCnt = DCount("*", "T_受注テーブル", strCriteria)
    
    MsgBox "今月の受注件数:" & lngCnt
End Sub

【解説】

T_受注テーブルに格納されているレコードに対して、「受注日」が今月のものをカウントする例です。

受注日フィールドと本日日付(Data関数)をともに、Format関数で「yyyymm」形式に整形し、それらが合致するう条件をWhere句としてDCount関数に組み込んでいます。

まとめ

本記事の要点をまとめます。

  • Format関数はAccessで「見た目」を整えることができる機能。
  • 数値・日付・文字列すべてに使え、クエリ・フォーム・VBAなどどこでも活躍できる。
  • 書式指定文字を覚えておくと、ユーザーにとって見やすい表示を自在に作成可能。
  • 書式を指定しない場合は標準書式で文字列が返る。

タイトルとURLをコピーしました