次の方法で共有


Format 関数 (Visual Basic 6.0 ユーザー向け)

更新 : 2007 年 11 月

Visual Basic 2008 の Format 関数は、共通言語ランタイム (CLR) の仕様に従ってデータの書式を設定するようになりました。.NET Framework でのデータ書式設定の詳細については、「型の書式設定」を参照してください。

Visual Basic 2008 の日付/時刻、数値、文字列の各書式に対して加えられた変更点を次に示します。

ユーザー定義の日付/時刻書式

Visual Basic 6.0

Visual Basic 6.0 では、短い形式または長い形式の日付表示に、それぞれ "ddddd" と "dddddd" の書式指定子を使用します。DayOfWeek ("w") 指定子および WeekOfYear ("ww") 指定子では、一週間の最初の日として認識された日、および一年の最初の週として認識された週がそれぞれ表示されます。小文字の "m" という文字は、先行するゼロが付かない数字で月を表示します。Quarter 指定子 ("q") は、1 ~ 4 の数字で四半期を表示します。

分を数字で表示するとき、先行するゼロを付ける場合は "Nn"、付けない場合は "N" という書式指定子を使用します。"Hh" という文字は、先行するゼロの付いた数字で時間を表示します。また、"ttttt" は絶対時間を表示します。午前と午後を示すために、大文字または小文字の "A" または "P" を表示するには、"AM/PM"、"am/pm"、"A/P"、"a/p"、または "AMPM" のいずれかを使用します。

短い形式の日付/時刻の指定子 ("c") を使うと、日付と時刻は "ddddd ttttt" 形式で表示されます。

Visual Basic 2005

Visual Basic 2008 では、"ddddd" と "dddddd" は、"dddd" と見なされ、日付の完全名が表示されます。短い形式や長い形式の日付は表示されません。DayOfWeek ("w") と WeekOfYear ("ww") はサポートされていません。次のコード例に示したように、DatePart 関数を代わりに使用できます。

Format(DatePart(DateInterval.Weekday, Now))


...


Format(DatePart(DateInterval.WeekOfYear, Now))

"M" と "m" には、それぞれ別の意味が割り当てられているため、大文字と小文字は区別されます。日付/時刻の書式の日付部分において月を示す場合にだけ "M" を使用します。"m" は、時刻部分において分を示す場合にだけ使用します。

Quarter 書式の指定子はサポートされていません。次のコード例に示したように、DatePart 関数を代わりに使用できます。

Format(DatePart(DateInterval.Quarter, Now))

分を数値で表示するには、先行するゼロを付ける場合は "m"、付けない場合は "mm" を使用します。"ttttt" 形式はサポートされなくなりました。"H" と "h" には、それぞれ別の意味が割り当てられているため、大文字と小文字は区別されます。24 時間制の時刻形式では "H"、12 時間制の時刻形式では "h" を使用します。AM/PM 形式は、"t" および "tt" で置き換えられます。

"c" 指定子は、通貨の書式設定に使用します。日付/時刻の書式を設定する場合は、短い形式を指定するときに "g" を使用し、通常の形式を指定するときに "G" を使用します。"g" および "G" では、現在のロケールの設定を使って日付と時刻の適切な書式が決定されます。

ユーザー定義の数値書式

Visual Basic 6.0

Visual Basic 6.0 では、書式を設定する前に文字列を数値に変換する必要がある場合、Format 関数を使って変換を行います。小数部がない場合、Format 関数は後続の小数点を表示します。

Visual Basic 6.0 では、書式文字列は 4 つのセクションに分かれています。各セクションはセミコロン (;) で区切られ、それぞれは正、負、ゼロ、および null の各値の書式を設定する方法を示します。書式文字列の負のセクションが空になっている負の数値は、空の文字列を表示します。

指数表記の書式では、指数部の後に "0" と "#" 桁プレースホルダの両方がサポートされています。

Visual Basic 2005

Visual Basic 2008 では、Format 関数は、書式を設定する前に文字列を数値に変換しません。最初の引数には、文字列ではなく数値を渡す必要があります。次のコード例を Visual Basic 2008 で実行すると、最初のコード行は意図した結果になりませんが、2 番目のコード行は意図した結果になります。

MsgBox(Format("1.234", "#.#"))   ' Displays "#.#".


...


MsgBox(Format(CSng("1.234"), "#.#"))   ' Displays "1.2".

次の例に示したように、後続の小数点は表示されません。

MsgBox(Format(123, "###."))   ' Displays "123"


...


MsgBox(Format(123, "###.#"))   ' Displays "123"

Visual Basic 2008 では、正、負、およびゼロの各値の書式を設定するため、書式文字列を 3 つのセクションで構成できます。1 番目または 2 番目の書式セクションによってゼロ以外の値がゼロに丸められた場合でも、丸められた値は 3 番目のセクションによって書式指定されます。次の例に示すように、書式文字列の負のセクションが空になっている負の数値は、マイナス記号を表示します。

MsgBox(Format(-1, ";"))   ' Displays "-".

指数表記の書式では、"0" 桁プレースホルダだけがサポートされ、"#" はサポートされません。次のコード例を Visual Basic 2008 で実行すると、最初のコード行は意図した結果になりませんが、2 番目のコード行は意図した結果になります。

MsgBox(Format(123, "#e+#"))   ' Displays "12e+3".


...


MsgBox(Format(123, "#e+0"))   ' Displays "1e+2".

文字列の書式

Visual Basic 6.0

Visual Basic 6.0 では、ユーザー定義の書式指定文字列の式を @、&、<、>、! という書式指定子を使って作成できます。

Visual Basic 2005

Visual Basic 2008 では、ユーザー定義の書式指定文字列は一切サポートされません。したがって、@、&、<、>、および ! は意味を持たず、サポートもされていません。

参照

概念

日付と時刻 (Visual Basic 6.0 ユーザー向け)

プログラミング要素のサポートに関する変更の概要

参照

Format 関数

DatePart 関数 (Visual Basic)