Format 関数

適用先
Access for Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

式を指定した書式に従って変換し、バリアント型 (内部処理形式 StringVariant) の値を返します。

警告 この関数の使用に問題があります。 一部の暦年の最後の月曜日は、週 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 年の最初の完全な週から開始します。

    

解説

書式設定の対象 方法
数字 定義済みの名前付き数値書式を使うか、ユーザー定義の数値書式を作成します。
日付と時刻 定義済みの名前付き日付/時刻書式を使うか、ユーザー定義の日付/時刻書式を作成します。
日付と時刻のシリアル番号 日付と時刻の書式または数値書式を使います。
文字列 独自のユーザー定義の文字列書式を作成します。

    

書式を指定せずに数値を書式設定しようとすると、書式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".

      

長さ 0 の文字列で Format を使用する

Microsoft Access バージョン 2.0 以前では、 Format 関数を使用して、長さ 0 の文字列の 1 つの値を返し、値に対して別の値を返します。 たとえば、次のような書式設定式を 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 ケースを個別にテストするようにコードを変更する必要があります。

文字列関数とその使い方