Strings.Format(Object, String) メソッド

定義

書式指定文字列 (String) 式に含まれる指示に従って書式設定された文字列を返します。

public static string Format (object? Expression, string? Style = "");
public static string Format (object Expression, string Style = "");
static member Format : obj * string -> string
Public Function Format (Expression As Object, Optional Style As String = "") As String

パラメーター

Expression
Object

必須です。 任意の有効な式。

Style
String

省略可能。 有効な名前の付いた、またはユーザー定義による String 型の書式指定式

戻り値

書式指定文字列 (String) 式に含まれる指示に従って書式設定された文字列です。

Format の書式指定とユーザー定義の書式指定の両方を使って値の書式を指定する、String 関数のさまざまな使用例を次に示します。 日付の区切り記号 (/)、時刻の区切り記号 (:)、および午前/午後を示す文字 (t および tt) について、システムで実際に表示される書式は、コードが使用するロケール設定によって決まります。 時刻と日付を開発環境で表示する場合は、コード ロケールの短い時刻書式と短い日付書式が使用されます。

Note

24 時間制を使用するロケールでは、午前/午後を示す記号 (t および tt) では何も表示されません。

Dim testDateTime As Date = #1/27/2001 5:04:23 PM#
Dim testStr As String
' Returns current system time in the system-defined long time format.
testStr = Format(Now(), "Long Time")
' Returns current system date in the system-defined long date format.
testStr = Format(Now(), "Long Date")
' Also returns current system date in the system-defined long date 
' format, using the single letter code for the format.
testStr = Format(Now(), "D")

' Returns the value of testDateTime in user-defined date/time formats.
' Returns "5:4:23".
testStr = Format(testDateTime, "h:m:s")
' Returns "05:04:23 PM".
testStr = Format(testDateTime, "hh:mm:ss tt")
' Returns "Saturday, Jan 27 2001".
testStr = Format(testDateTime, "dddd, MMM d yyyy")
' Returns "17:04:23".
testStr = Format(testDateTime, "HH:mm:ss")
' Returns "23".
testStr = Format(23)

' User-defined numeric formats.
' Returns "5,459.40".
testStr = Format(5459.4, "##,##0.00")
' Returns "334.90".
testStr = Format(334.9, "###0.00")
' Returns "500.00%".
testStr = Format(5, "0.00%")

注釈

メソッドも String.Format 同様の機能を提供します。

ローカライズされていない数値文字列を書式設定する場合は、ユーザー定義の数値書式を使用して、目的の外観を確実に取得する必要があります。

を指定StyleFormatせずに数値を書式設定しようとすると、関数は関数と同様の機能をStr提供しますが、国際的に認識されます。 ただし、 関数を使用して Format 文字列として書式設定された正の数値には、値の符号用に予約された先頭のスペースは含まれません。関数を Str 使用して変換された数値は先頭のスペースを保持します。

異なる数値の異なる形式

ユーザー定義の数値式では、1 から 3 個のセクションをセミコロンで区切って指定できます。 関数の引数にStyleFormat定義済みの数値形式のいずれかが含まれている場合は、1 つのセクションのみが許可されます。

以下を使用する場合 結果
1 つのセクションのみ このフォーマット式は、すべての値に適用されます。
2 つ 最初のセクションは正の値と 0 に適用されます。2 番目は負の値に適用されます。
3 つ 最初のセクションは正の値に適用され、2 番目は負の値に適用され、3 番目は 0 に適用されます。

次の例には、2 つのセクションがあります。1 つ目は、正の値と 0 の形式を定義します。2 番目のセクションでは、負の値の形式を定義します。 関数の Style 引数は文字列を Format 受け取るので、引用符で囲まれます。

Dim style1 As String = "$#,##0;($#,##0)"

セミコロンの間に何も含まれていない場合、欠落しているセクションは正の値の書式を使用して出力されます。 たとえば、次の形式では、最初のセクションの形式を使用して正と負の値が表示され、値が 0 の場合に表示されます Zero

Dim style2 As String = "$#,##0;;\Z\e\r\o"

定義済みの数値書式

次の表では、定義済みの数値書式の名前を示します。 これらは、関数の Style 引数 Format として name で使用できます。

形式名 説明
General NumberG、または g 桁区切り記号のない数値を表示します。

たとえば、Format(&H3FA, "g") では 1018 が返されます。
CurrencyC、または c 必要に応じて、数値を桁区切り記号で表示します。では、小数点の右側に 2 桁の数字が表示されます。 出力はシステムのロケール設定に基づきます。

たとえば、Format(1234567, "c") では $1,234,567.00 が返されます。
FixedF、または f 少なくとも、小数点区切り記号の左側に 1 桁、右側に 2 桁の数字を表示します。

たとえば、Format(1234567, "f") では 1234567.00 が返されます。
StandardN、または n 桁区切り記号を使用して数値を表示します。左に少なくとも 1 桁、小数点の右側に 2 桁の数字を表示します。

たとえば、Format(1234567, "n") では 1,234,567.00 が返されます。
Percent 数値に 100 を乗算し、直後の右側にパーセント記号 (%) を追加して表示します。小数点区切り記号の右側に、常に 2 桁の数字を表示します。

たとえば、Format(0.4744, "Percent") では 47.44% が返されます。
P または p 数値を 100 倍して桁区切り記号を付け、数値の右側にスペース 1 文字とパーセント記号 (%) を表示します。小数点区切り記号の右側に、常に 2 桁の数字を表示します。

たとえば、Format(0.80345, "p") では 80.35 % が返されます。
Scientific 2 桁の有効桁数を提供する標準指数表記を使用します。

たとえば、Format(1234567, "Scientific") では 1.23E+06 が返されます。
E または e 標準的な科学的表記法を使用します。有効桁数は 6 桁です。

たとえば、Format(1234567, "e") では 1.234567e+006 が返されます。
D または d 数値を 10 進数形式の値を格納する文字列として表示します。 このオプションは、整数型 (ByteShortIntegerLong) でのみサポートされています。

たとえば、Format(&H7F, "d") では 127 が返されます。
X または x 数値を 16 進数形式の値を格納する文字列として表示します。 このオプションは、整数型 (ByteShortIntegerLong) でのみサポートされています。

たとえば、Format(127, "x") では 7f が返されます。
Yes/No No数値が 0 の場合は を表示し、それ以外の場合は を表示しますYes

たとえば、Format(0, "Yes/No") では No が返されます。
True/False False数値が 0 の場合は を表示し、それ以外の場合は を表示しますTrue

たとえば、Format(1, "True/False") では True が返されます。
On/Off Off数値が 0 の場合は を表示し、それ以外の場合は を表示しますOn

たとえば、Format(1, "On/Off") では On が返されます。

スマート デバイス開発者向けのメモ

True/False、および On/OffYes/No形式はサポートされていません。

User-Defined数値形式

次の表は、ユーザー定義の数値書式を作成するために使用できる文字を示しています。 これらは、 関数の引数FormatStyle作成するために使用できます。

文字 説明
None 書式設定なしで数値を表示します。
(0) 数字のプレースホルダー。 数字または 0 を表示します。 式の書式指定文字列にゼロが表示される位置に数字がある場合は、それを表示します。それ以外の場合は、その位置に 0 が表示されます。

数値の桁数が、書式の式のゼロ (小数点の両側) の数より少ない場合は、先頭または末尾に 0 が表示されます。 数値の小数点区切り記号より右側の桁数が、書式の式の小数点区切り記号より右側の 0 の数より多い場合、数値は 0 と同数の小数点以下の桁数に丸められます。 数値の小数点区切り記号より左側の桁数が、書式の式の小数点区切り記号より左側の 0 の数より多い場合、余分な数字が変更なしで表示されます。
(#) 数字のプレースホルダー。 数字を表示するか、または何も表示しません。 式の書式指定文字列に文字が表示される位置に数字が # 含まれている場合は表示されます。それ以外の場合は、その位置に何も表示されません。

この記号は数字プレースホルダーと同様に 0 機能しますが、数値の桁数が書式式の小数点区切り記号の両側にある文字よりも少ない場合、先頭と末尾のゼロは # 表示されません。
(.) 小数点のプレースホルダー。 小数点プレースホルダーにより、小数点区切り記号の左側と右側に表示される数字の数が決まります。 書式指定式にこの記号の左側の文字のみが # 含まれている場合は、1 より小さい数値は小数点で始まります。 小数部の前にゼロを表示するには、小数点区切り記号の左側の最初の桁プレースホルダーとしてゼロを使用します。 ロケールによっては、小数点区切り記号としてコンマが使用されます。 書式設定された出力で、小数点プレースホルダーとして使用される実際の文字は、システムによって認識される数値書式によって異なります。 したがって、小数点プレースホルダーとしてコンマを使用するロケールの場合でも、書式では小数点プレースホルダーとしてピリオドを使用する必要があります。 書式設定された文字列は、ロケールに適した書式で示されます。
(%) パーセント プレースホルダー。 式を 100 で乗算します。 パーセント文字 (%) は、書式設定文字列で示される位置に挿入されます。
(,) 桁区切り記号。 桁区切り記号は、小数点区切り記号の左側に 4 桁以上ある数値で、千の位と百の位を区切ります。 桁のプレースホルダー (0 または #) で囲まれた桁区切り記号が書式に含まれている場合、桁区切り記号の標準的な使用が指定されます。

小数点区切り記号のすぐ左側の桁区切り記号 (10 進数が指定されているかどうかに関係なく) または文字列の右端の文字は、"必要に応じて丸め、1,000 で除算して数値をスケーリングする" を意味します。1,000 より小さいが 500 以上の数値は として 1表示され、500 未満の数値は として 0表示されます。 この位置に 2 つの隣接する桁区切り記号がある場合は、100 万の係数でスケーリングされ、区切り記号が追加されるたびに 1,000 の係数が追加されます。

小数点区切り記号のすぐ左側または文字列内の右端の位置以外の任意の位置にある複数の区切り記号は、単に桁区切り記号の使用の指定として扱われます。 ロケールによっては、桁区切り記号としてピリオドが使用されます。 書式設定された出力で、桁区切り記号として実際に使用される文字は、システムによって認識される数値書式によって異なります。 したがって、桁区切り記号としてピリオドを使用するロケールの場合でも、書式では桁区切り記号としてコンマを使用する必要があります。 書式設定された文字列は、ロケールに適した書式で示されます。

たとえば、次の 3 つの書式文字列について考えてみます。

- "#,0."は、桁区切り記号を使用して、数値 1 億を文字列 "100,000,000" として書式設定します。
- "#0,."は、100000 の係数によるスケーリングを使用して、数値 1 億を文字列 "100000" として書式設定します。
- "#,0,."は、桁区切り記号と 1,000 単位のスケーリングを使用して、数値 1 億を文字列 "100,000" として書式設定します。
(:) 時刻の区切り記号。 ロケールによっては、他の文字を使用して時刻区切り記号が表される場合があります。 時刻の値を書式設定するときに、時刻区切り記号で時、分、秒を区切ります。 書式設定された出力で時刻区切り記号として実際に使用される文字は、システム設定によって決まります。
(/) 日付の区切り記号。 ロケールによっては、他の文字を使用して日付区切り記号が表される場合があります。 日付の値を書式設定するときに、日付区切り記号で日、月、年を区切ります。 書式設定された出力で日付区切り記号として実際に使用される文字は、システム設定によって決まります。
(E-``E+``e-``e+) 科学的表記形式。 書式指定式の左側E-e-E+e+に少なくとも 1 つの数字プレースホルダー (0 または #) が含まれている場合、数値は科学的な形式で表示され、E数値eとその指数の間に挿入されます。 左側の数字プレースホルダーの数によって、指数部の桁数が決まります。 負の指数の横にマイナス記号を配置するには、 または e- を使用E-します。 負の指数の横にマイナス記号を、正の指数の横にプラス記号を配置するには、 または e+ を使用E+します。 正しい書式設定を取得するには、この記号の右側に数字プレースホルダーを含める必要もあります。
-+$ ( ) リテラル文字。 これらの文字は、書式文字列に入力されたとおりに表示されます。 一覧に含まれていない文字を表示するには、その文字の前に円記号 (\) を付けるか、または二重引用符 (" ") で囲みます。
(\) 書式文字列の次の文字を表示します。 リテラル文字として特別な意味を持つ文字を表示するには、その文字の前に円記号 (\) を付けます。 円記号自体は表示されません。 円記号の使用は、次の文字を二重引用符で囲むことと同じです。 円記号を表示するには、2 つの円記号 (\\) を使用します。

リテラル文字として表示できない文字の例としては、日付書式と時刻書式の文字 (amq/nhdswtypcおよび:)、数値書式文字 (#E0%eコンマ、およびピリオド)、および文字列形式の文字 (@<&>、および !) があります。
("``ABC``") 二重引用符 (" ") の内側に文字列を表示します。 コード内から style 引数に文字列を含めるには、 を使用 Chr(34) してテキストを囲む必要があります (34 は引用符 (") の文字コードです)。

古いコードの例

次の表には、数値のサンプル書式の式がいくつか含まれています (これらの例はすべて、システムのロケール設定が英語 -米国であることを前提としています)最初の列には関数の引数の書式指定文字列がStyleFormat含まれます。書式設定されたデータに列見出しに指定された値がある場合、他の列には結果の出力が含まれます。

形式 (Style) "5" の書式設定 "-5" の書式設定 "0.5" の書式設定
Zero-length string ("") 5 -5 0.5
0 5 -5 1
0.00 5.00 -5.00 0.50
#,##0 5 -5 1
$#,##0;($#,##0) $5 ($5) $1
$#,##0.00;($#,##0.00) $5.00 ($5.00) $0.50
0% 500% -500% 50%
0.00% 500.00% -500.00% 50.00%
0.00E+00 5.00E+00 -5.00E+00 5.00E-01
0.00E-00 5.00E00 -5.00E00 5.00E-01

定義済みの日付/時刻形式

次の表では、定義済みの日付と時刻の書式の名前を示します。 これらは、関数の style 引数 Format として name で使用できます。

形式名 説明
General Date または G 日付か時刻、または両方を表示します。 たとえば、「 3/12/2008 11:07:31 AM 」のように入力します。 日付の表示は、アプリケーションの現在のカルチャ値によって決まります。
Long DateMedium Date、または D 現在のカルチャの長い日付書式に従って日付を表示します。 たとえば、「 Wednesday, March 12, 2008 」のように入力します。
Short Date または d 現在のカルチャの短い日付書式を使用して日付を表示します。 たとえば、「 3/12/2008 」のように入力します。

文字は d 、ユーザー定義の日付形式で日を表示します。
Long TimeMedium Time、または T 現在のカルチャの長い時刻書式を使用して時刻を表示します。通常、時間、分、秒が含まれます。 たとえば、「 11:07:31 AM 」のように入力します。
Short Time または t 現在のカルチャの短い時刻書式に従って時刻を表示します。 たとえば、「 11:07 AM 」のように入力します。

文字は t 、ユーザー定義の AM 時刻形式で 12 時間制を使用するロケールの値または PM 値を表示します。
f 現在のカルチャの書式に従って、長い日付と短い時刻を表示します。 たとえば、「 Wednesday, March 12, 2008 11:07 AM 」のように入力します。
F 現在のカルチャの書式に従って長い日付と長い時刻を表示します。 たとえば、「 Wednesday, March 12, 2008 11:07:31 AM 」のように入力します。
g 現在のカルチャの書式に従って、短い日付と短い時刻を表示します。 たとえば、「 3/12/2008 11:07 AM 」のように入力します。
M, m 月と日を表示します。 たとえば、「 March 12 」のように入力します。

文字は M 、ユーザー定義の日付形式で月を表示します。 文字には m 、ユーザー定義の時刻形式で分が表示されます。
R, r プロパティに従って日付を RFC1123Pattern 書式設定します。 たとえば、「 Wed, 12 Mar 2008 11:07:31 GMT 」のように入力します。 書式設定された日付では、日付と時刻の値は調整されません。 関数を呼び出す前に、日付/時刻の値を GMT に調整する Format 必要があります。
s 日付と時刻を並べ替え可能なインデックスとして設定します。 たとえば、「 2008-03-12T11:07:31 」のように入力します。

この文字は s 、ユーザー定義の時刻形式で秒を表示します。
u 日付と時刻を GMT 形式の並べ替え可能なインデックスとして設定します。 たとえば、「 2008-03-12 11:07:31Z 」のように入力します。
U 日付と時刻を GMT 形式の長い日付と長い時刻で設定します。 たとえば、「 Wednesday, March 12, 2008 6:07:31 PM 」のように入力します。
Y, y 日付を年と月として設定します。 たとえば、「 March, 2008 」のように入力します。

y の文字はY、ユーザー定義の日付形式で年を表示します。

アプリケーションの現在のカルチャ情報の詳細については、「 Visual Basic でのカルチャによる文字列への影響」を参照してください。

日付/時刻形式をUser-Definedする

次の表では、ユーザー定義の日付/時刻書式を作成するために使用できる文字を示します。 以前のバージョンの Visual Basic とは異なり、これらの書式文字では大文字と小文字が区別されます。

文字 説明
(:) 時刻の区切り記号。 ロケールによっては、他の文字を使用して時刻区切り記号が表される場合があります。 時刻の値を書式設定するときに、時刻区切り記号で時、分、秒を区切ります。 書式設定された出力で時刻区切り記号として使用される実際の文字は、アプリケーションの現在のカルチャ値によって決まります。
(/) 日付の区切り記号。 ロケールによっては、他の文字を使用して日付区切り記号が表される場合があります。 日付の値を書式設定するときに、日付区切り記号で日、月、年を区切ります。 書式設定された出力で日付区切り記号として使用される実際の文字は、アプリケーションの現在のカルチャによって決まります。
(%) 後続の文字に関係なく、次の文字が 1 文字書式として読み取られる必要があることを示すために使用されます。 また、1 文字書式がユーザー定義書式として読み取られることを示すためにも使用されます。 詳細については、以下を参照してください。
d 先頭に 0 を付けずに日を数値で表示します (例: 1)。 これがユーザー定義の数値形式の唯一の文字である場合は、 を使用 %d します。
dd 日を先頭に 0 の数値で表示します (例: 01)。
ddd 日付を省略形で表示します (例: Sun)。
dddd 日を完全な名前 (例: Sunday) として表示します。
M 月を先頭に 0 を付けずに数値として表示します (たとえば、1 月は として 1表されます)。 これがユーザー定義の数値形式の唯一の文字である場合は、 を使用 %M します。
MM 月を先頭に 0 の数値で表示します (例: 01/12/01)。
MMM 月を省略形で表示します (例: Jan)。
MMMM 月を完全な月名として表示します (例: January)。
gg ピリオド/時代 (年号) の文字列を表示します (例: A.D.)。
h 12 時間制を使用して、先頭にゼロを付けずに時間を数値として表示します (例: 1:15:15 PM)。 これがユーザー定義の数値形式の唯一の文字である場合は、 を使用 %h します。
hh 12 時間制を使用して、先頭に 0 を付けた数値として時間を表示します (例: 01:15:15 PM)。
H 24 時間制を使用して、先頭にゼロを付けずに時間を数値として表示します (例: 1:15:15)。 これがユーザー定義の数値形式の唯一の文字である場合は、 を使用 %H します。
HH 24 時間制を使用して、先頭に 0 を付けた数値として時間を表示します (例: 01:15:15)。
m 分を先頭に 0 を付けずに数値として表示します (例: 12:1:15)。 これがユーザー定義の数値形式の唯一の文字である場合は、 を使用 %m します。
mm 分を先頭に 0 の数値で表示します (例: 12:01:15)。
s 2 つ目を先頭に 0 を付けずに数値として表示します (例: 12:15:5)。 これがユーザー定義の数値形式の唯一の文字である場合は、 を使用 %s します。
ss 2 つ目を先頭に 0 の数値で表示します (例: 12:15:05)。
f 秒の小数部を表示します。 たとえば ff 、100 分の 1 秒が表示されますが ffff 、10,000 秒が表示されます。 ユーザー定義形式では、最大 7 つの f シンボルを使用できます。 これがユーザー定義の数値形式の唯一の文字である場合は、 を使用 %f します。
t 12 時間制を使用し、正午までの任意の時刻に大文字 A を表示します。正午から午後 11 時 59 分までの任意の時間の大文字 P を表示します。ユーザー定義の数値形式でこれが唯一の文字である場合は、 を使用 %t します。
tt 12 時間制を使用するロケールでは、正午の前に任意の時刻の大文字 AM が表示され、正午から午後 11 時 59 分までの任意の時間で大文字 PM が表示されます。

24 時間制を使用するロケールの場合は、何も表示されません。
y 先頭に 0 を付けずに年数 (0 から 9) を表示します。 これがユーザー定義の数値形式の唯一の文字である場合は、 を使用 %y します。
yy 該当する場合は、先頭に 0 を付けて 2 桁の数値書式で年を表示します。
yyy 年を 4 桁の数値書式で表示します。
yyyy 年を 4 桁の数値書式で表示します。
z 前に 0 を付けずにタイムゾーン オフセットを表示します (例: -8)。 これがユーザー定義の数値形式の唯一の文字である場合は、 を使用 %z します。
zz 前に 0 を付けてタイムゾーン オフセットを表示します (例: -08)
zzz 完全なタイムゾーン オフセットを表示します (例: -08:00)

古いコードの例

のユーザー定義の日付と時刻の形式の例を次に December 7, 1958, 8:50 PM, 35 seconds示します。

形式 表示
M/d/yy 12/7/58
d-MMM 7-Dec
d-MMMM-yy 7-December-58
d MMMM 7 December
MMMM yy December 58
hh:mm tt 08:50 PM
h:mm:ss t 8:50:35 P
H:mm 20:50
H:mm:ss 20:50:35
M/d/yyyy H:mm 12/7/1958 20:50

スマート デバイス開発者向けのメモ

デバイスの最小時間解像度は、デバイスの製造元によって決まります。 デバイスの時間解決が十分に粗い場合、 f そのデバイスで実行すると、書式文字は 0 を返します。

適用対象

こちらもご覧ください