式を指定された書式に従って変換し、Variant (String) を返します。
警告: レジストリ エディターまたは別の方法でレジストリを誤って変更すると、重大な問題が発生することがあります。 この関数の使用に問題があります。 一部の暦年の最後の月曜日は、週 1 である必要がある週 53 として返すことができます。 詳細と回避策については、「 Format または DatePart 関数は、昨年の最後の月曜日に間違った週番号を返す可能性がある」を参照してください。 |
構文
Format( expression [, format ] [, firstdayofweek ] [, firstweekofyear ] )
Format 関数の引数は次のとおりです。
引数 |
説明 |
expression |
必須。 任意の有効な式。 |
format |
省略可能。 有効な名前付き書式、またはユーザー定義書式。 |
firstdayofweek |
省略可能。 週の始まりの曜日を表す定数。 |
firstweekofyear |
省略可能。 年の第 1 週を指定する定数。 |
設定
format 引数では、式引数のデータ型に応じて、さまざまな設定を使用できます。 有効な書式設定式の詳細については、次の表に記載されている記事を参照してください。
データ型 |
参照する記事 |
任意の型 |
|
日付/時刻 |
|
数値 |
|
テキストとメモ |
|
はい/いいえ |
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 |
年の最初の完全な週から開始します。 |
解説
書式設定の対象 |
方法 |
数字 |
定義済みの名前付き数値書式を使うか、ユーザー定義の数値書式を作成します。 |
日付と時刻 |
定義済みの名前付き日付/時刻書式を使うか、ユーザー定義の日付/時刻書式を作成します。 |
日付と時刻のシリアル番号 |
日付と時刻の書式または数値書式を使います。 |
文字列 |
独自のユーザー定義の文字列書式を作成します。 |
書式を指定せずに数値を書式設定しようとすると、書式は 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 のリテラルについては、システムで実際に表示される書式設定された出力は、コードが実行しているコンピューターのロケール設定に依存します。 日付と時刻が開発環境で表示されるときは、コードのロケールの短い日時形式が使われます。 コードを実行して表示される短い日時形式はシステムのロケールの形式であり、コードのロケールとは異なる場合があります。 この例では、米国英語のロケールが想定されています。
MyTime と MyDate は、現在のシステムの短い日時設定を使って、開発環境で表示されます。
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 ケースを個別にテストするようにコードを変更する必要があります。