Format 関数

式を指定された書式に従って変換し、Variant (String) を返します。

例を参照する

構文

Format( expression [, format ] [, firstdayofweek ] [, firstweekofyear ] )

Format 関数の引数は次のとおりです。

引数

説明

expression

必須。任意の有効な式。

format

省略可能。有効な名前付き書式、またはユーザー定義書式。

firstdayofweek

省略可能。週の始まりの曜日を表す定数。

firstweekofyear

省略可能。年の第 1 週を指定する定数。


設定

format引数では、expression 引数のデータ型に応じて、さまざまな設定を使うことができます。有効な書式設定式の詳細については、次の表に記載されている記事を参照してください。

データ型

参照する記事

任意の型

"Format/書式" プロパティ

日付/時刻

"Format/書式" プロパティ - 日付/時刻型

数値

"Format/書式" プロパティ - 数値型と通貨型

テキストとメモ

"Format/書式" プロパティ - テキスト型とメモ型

はい/いいえ

"Format/書式" プロパティ - Yes/No 型


firstdayofweek 引数の設定は次のとおりです。

定数

説明

vbUseSystem

0

NLS API の設定を使います。

VbSunday

1

日曜日 (既定)

vbMonday

2

月曜日

vbTuesday

3

火曜日

vbWednesday

4

水曜日

vbThursday

5

木曜日

vbFriday

6

金曜日

vbSaturday

7

土曜日


firstweekofyear 引数の設定は次のとおりです。

定数

説明

vbUseSystem

0

NLS API の設定を使います。

vbFirstJan1

1

1 月 1 日が含まれる週から開始します (既定)。

vbFirstFourDays

2

年の少なくとも 4 日が含まれる最初の週から開始します。

vbFirstFullWeek

3

年の最初の完全な週から開始します。


解説

書式設定の対象

方法

数字

定義済みの名前付き数値書式を使うか、ユーザー定義の数値書式を作成します。

日付と時刻

定義済みの名前付き日付/時刻書式を使うか、ユーザー定義の日付/時刻書式を作成します。

日付と時刻のシリアル番号

日付と時刻の書式または数値書式を使います。

文字列

独自のユーザー定義の文字列書式を作成します。


format を指定しないで数値を書式設定しようとした場合、FormatStr 関数に似た機能を提供しますが、国際対応です。ただし、Format を使って正の数を文字列として書式設定すると、値の符号のために確保されている先頭のスペースは含まれません。Str を使って変換すると、先頭のスペースが維持されます。

ローカライズされていない数値文字列の書式を設定する場合は、ユーザー定義の数値書式を使って目的の表現にする必要があります。

注: カレンダー プロパティの設定がグレゴリオ暦であり、format で日付の書式設定を指定する場合、expression ではグレゴリオ暦を指定する必要があります。Visual Basic のカレンダー プロパティ設定がイスラム暦の場合、expression はイスラム暦でなければなりません。

カレンダーがグレゴリオ暦の場合、format 式の記号の意味は変わりません。カレンダーがイスラム歴の場合、日付書式の記号 (dddd、mmmm、yyyy など) は意味は変わりませんが、イスラム暦に適用されます。書式設定の記号は英語のままです。テキスト表示 (AM、PM など) になる記号は、その記号に関連付けられている文字列 (英語やアラビア語) を表示します。カレンダーがイスラム歴の場合、特定の記号の範囲が変わります。

記号

範囲

d

1 ~ 30

dd

1 ~ 30

ww

1 ~ 51

mmm

完全な月の名前が表示されます (イスラム暦の月の名前に省略形はありません)。

y

1 ~ 355

yyyy

100 ~ 9666

式で Format 関数を使う    式を使用できるすべての箇所で、Format を使用できます。たとえば、フィールド エイリアスの一部としてクエリで使ったり、フォームまたはレポートのテキスト ボックスのコントロール ソース プロパティで使ったりできます。次の例では、レポートのフィルター プロパティで式を使って、前週のレコードに出力を制限しています。

Format([Date],"ww")=Format(Now(),"ww")-1

この例では、レポートのレコード ソースには Date という名前のフィールドがあり、各レコードが変更された日付が格納されていて、レポートで使われています。レポートを実行すると、結果がフィルター処理されて、Date フィールドの値の週 (Format([Date],"ww")) が前の週 (Format(Now(),"ww")-1) と等しいレコードだけが表示されます。

VBA コードで Format 関数を使う    

注: 次の例は、Visual Basic for Applications (VBA) モジュールでのこの関数の使用方法を示しています。 VBA の使用方法の詳細については、[検索] の横にあるドロップダウン リストで [開発者用リファレンス] を選び、検索ボックスに検索する用語を入力します。

この例では、Format 関数で名前付き書式設定とユーザー定義の書式設定の両方を使って値を書式設定するさまざまな方法を示します。日付の区切り記号 (/)、時刻の区切り記号 (:)、AM と PM のリテラルについては、システムで実際に表示される書式設定された出力は、コードが実行しているコンピューターのロケール設定に依存します。日付と時刻が開発環境で表示されるときは、コードのロケールの短い日時形式が使われます。コードを実行して表示される短い日時形式はシステムのロケールの形式であり、コードのロケールとは異なる場合があります。この例では、米国英語のロケールが想定されています。

MyTimeMyDate は、現在のシステムの短い日時設定を使って、開発環境で表示されます。

Dim MyTime, MyDate, MyStr
MyTime = #17:04:23#
MyDate = #January 27, 1993#
' Returns current system time in the system-defined long time format.
MyStr = Format(Time, "Long Time")
' Returns current system date in the system-defined long date format.
MyStr = Format(Date, "Long Date")
MyStr = Format(MyTime, "h:m:s") ' Returns "17:4:23".
MyStr = Format(MyTime, "hh:mm:ss AMPM") ' Returns "05:04:23 PM".
MyStr = Format(MyDate, "dddd, mmm d yyyy") ' Returns "Wednesday,
' Jan 27 1993".
' If format is not supplied, a string is returned.
MyStr = Format(23) ' Returns "23".
' User-defined formats.
MyStr = Format(5459.4, "##,##0.00") ' Returns "5,459.40".
MyStr = Format(334.9, "###0.00") ' Returns "334.90".
MyStr = Format(5, "0.00%") ' Returns "500.00%".
MyStr = Format("HELLO", "<") ' Returns "hello".
MyStr = Format("This is it", ">") ' Returns "THIS IS IT".


Format での長さ 0 の文字列の使用

Microsoft Access バージョン 2.0 以前では、Format 関数を使って、長さ 0 の文字列と値に異なる値を取得できます。たとえば、次のような書式設定式を Format 関数で使って、コードから適切な文字列値を返すことができます。

Dim varX As Variant
Dim varStrX As Variant
' Assign some value to varStrX and pass to Format function.
varX = Format(varStrX, "@;ZLS;Null")

Microsoft Access バージョン 97 以降では、Null のケースを個別にテストし、結果に基づいて適切な値を返す必要があります。たとえば、次のような Format 関数の式で IIf 関数を使うことができます。

varX = IIf(IsNull(varStrX),"Null", Format(varStrX, "@;ZLS"))

この変更は、Format 関数を使って長さ 0 の文字列か Null 値かに応じて文字列を書式設定するときにのみ適用されます。Format 関数で使われる他の書式設定式は以前のバージョンと同じように動作します。

Microsoft Access バージョン 2.0 以前から Microsoft Access 2002 以降にデータベースを変換する場合、Null ケースを個別にテストするようにコードを変更する必要があります。

スキルを磨く
トレーニングの探索
新機能を最初に入手
Office Insider に参加する

この情報は役に立ちましたか?

ご意見をいただきありがとうございます。

フィードバックをお寄せいただき、ありがとうございます。Office サポートの担当者におつなぎいたします。

×