Format 関数

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

警告    この関数の使用に問題があります。 一部のカレンダー年の最後の月曜日は、週 1 である第 53 週として返されます。 詳細と回避策については、「Format 関数または DatePart 関数が、年の先週月曜日に誤った週番号を返す 可能性がある」を参照してください

例を参照する

構文

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

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

引数

説明

expression

必須。 任意の有効な式。

format

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

firstdayofweek

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

firstweekofyear

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


設定

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関数は Str 関数と同様の機能を提供します。 ただし、Format を使用して文字列として書式設定された正の数値には、値の符号用に予約された先頭のスペースは含めありません。Str を使用して変換された場合は、先頭のスペースが保持されます。

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

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

予定表がグレゴリオ暦の場合、書式式 記号の意味は変わりません。 カレンダーが Hijri の場合、すべての日付形式記号 (dddd、mmmm、yyyy など) は同じ意味を持ちますが、Hijri カレンダーに適用されます。 書式記号は英語のままです。文字列が表示される記号 (AM や PM など) には、その記号に関連付けられている文字列 (英語またはアラビア語) が表示されます。 カレンダーが Hijri の場合、特定の記号の範囲が変わります。

記号

範囲

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 のスキルを磨く
トレーニングの探索
新機能を最初に入手
Office Insider に参加する

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

×