可変数の入力値を、フォーマット文字列に従って整形します。
String := Format(FormatStr , Values...)
型:文字列
{Index:Format}
という形式のリテラルテキストとプレースホルダからなるフォーマット文字列です。
Indexは、どの入力値を使用するかを示す整数で、1が最初の値です。
Formatは、後述するオプションのフォーマット指定子です。
インデックスを省略すると、(文字列の前のほうで使われていたとしても)シーケンスの次の入力値を使用します。例えば、"{2:i} {:i}"
は、2番目と3番目の入力値を、スペースで区切った10進数の整数としてフォーマットします。Indexが省略された場合でも、Formatの前には:
が必要です。空の中括弧を指定すると、次の入力値をデフォルトの書式で使用する:{}
文字列の中にリテラルブレースを含めるには、{{}
と {}}
を使用します。それ以外の無効なプレースホルダーは、そのまま結果に含まれます。
中括弧の中の空白は許されない(フラグとして除く)。
最終的な文字列に整形して挿入される入力値。各値は独立したパラメータです。最初の値はインデックスが1です。
値の配列を渡すには、variadic function callを使用します:
arr := [13, 240] MsgBox Format("{2:x}{1:02x}", arr*)
型:文字列
この関数は、指定された文字列を整形したものを返す。
各フォーマット指定子は、以下の構成要素をこの順序で含むことができる(空白は除く):
Flags Width .Precision ULT Type
Flags:以下のフラグテーブルから0個以上のフラグを指定し、出力の正当化および接頭辞に影響を与える。
Width:フォーマットされた値の最小幅を制御する10進数の整数(文字数)。デフォルトでは、値は右寄せになり、パディングにはスペースが使用されます。これは、-
(左寄せ)および0
(ゼロプレフィックス)フラグを使用することで上書きすることができます。
.Precision:出力タイプに応じて、出力する文字列の最大文字数、小数点以下の桁数、または有効桁数を制御する10進数の整数です。その前に必ず小数点が付きます。精度を指定すると、値が切り捨てられたり、丸められたりすることがあります。出力の種類と精度値によるそれぞれの影響は以下の通りです(出力の種類についての説明は下表を参照):
f
、e
、E
:Precisionは、小数点以下の桁数を指定します。デフォルトは6です。g
、G
:Precisionは、最大有効桁数を指定します。デフォルトは6です。s
:Precisionは、印刷する文字数の最大値を指定します。これを超える文字は印刷されません。d
、i
、u
、x
、X
、o
)の場合、Precisionは Widthのように接頭辞0
、デフォルト1として動作します。ULT:文字列の値に適用する大文字と小文字の変換を指定する --Upper、Lower、Title。s
タイプのみ有効です。例えば{:U}
や {:.20Ts}
のようなものです。小文字のl
と t
もサポートされているが、u
は符号なし整数用に予約されている。
Type:入力値がどのように解釈されるべきかを示す、以下のタイプテーブルからの文字。省略された場合、デフォルトはs
です。
フラグ | 意味 |
---|---|
- |
指定されたフィールド幅の範囲内で結果を左寄せにする(必要に応じて右側にスペースを挿入します)。例えば、 省略された場合、結果は与えられたフィールド幅の中で右寄せされます。 |
+ |
出力値が符号付きである場合、符号(+または-)を前置詞として使用します。例えば、 省略した場合は、負の符号付き値(-)に対してのみ符号が表示されます。 |
0 |
widthの前に0を付けると、最小幅に達するまで先頭の0が追加されます。例えば、 省略した場合、パディングは行われない。 |
|
出力値が符号付きで正数である場合、スペースを1つ使って前置します。 省略した場合は、スペースが表示されません。 |
# |
o、x、Xフォーマットと併用する場合、#フラグはそれぞれ e、E、f、a、Aフォーマットで使用する場合、#フラグは出力値に強制的に小数点を含ませる。例えば、 gまたはGフォーマットと併用する場合、#フラグは出力値に小数点以下を強制的に含ませ、末尾のゼロの切り捨てを防止します。 c、d、i、u、s と共に使用する場合は無視されます。 |
型キャラクター | 引数 | 出力フォーマット |
---|---|---|
d または i |
整数 | 符号付き10進数整数。例えば、Format("{:d}", 1.23) は1 を返します。 |
u |
整数 | 符号なし10進数整数。 |
x または X |
整数 | 符号なし16進数整数。x のケースによって "abcdef"または "ABCDEF" を使用します。0x は {:#x} のように# フラグが使用されていない限り、接頭辞は含まれない。常にプレフィックスを含むようにするには、0x{:x} などを使用します。例えば、Format("{:X}", 255) はFF を返します。 |
o |
整数 | 8進数の符号なし整数。例えば、Format("{:o}", 255) は377 を返します。 |
f |
浮動小数点 | 符号付き値で、[ - ]dddd.dddd(ddddは1桁以上の10進数)の形式を持つ。小数点以下の桁数は数値の大きさに依存し、小数点以下の桁数は要求精度に依存します。例えば、Format("{:.2f}", 1) は1.00 を返します。 |
e |
浮動小数点 | 符号付き値で,形式は [ - ]d.dddde[sign]dd[d]ここで,dは小数点以下1桁,ddddは小数点以下1桁以上,dd[d]は出力形式と指数の大きさに応じて小数点以下2桁または3桁,signは + または -。例えば、Format("{:e}", 255) は2.550000e+02 を返します。 |
E |
浮動小数点 | eではなくEが指数を導入することを除いて、e フォーマットと同じです。 |
g |
浮動小数点 | 符号付き値は、f またはe のフォーマットで表示され、与えられた値と精度に対してよりコンパクトなほうを選択します。e 形式は,値の指数が-4未満,または精度引数以上の場合にのみ使用されます。末尾のゼロは切り捨てられ、小数点は1桁以上続く場合のみ表示されます。 |
G |
浮動小数点 | g 形式と同じ。ただし、e ではなく E が指数(適切な場合)を導入している。 |
a |
浮動小数点 | Signed hexadecimal double-precision floating-point value that has the form [?]0xh.hhhh p±dd, where h.hhhh are the hex digits (using lower case letters) of the mantissa, and dd are one or more digits for the exponent. 精度は、ポイント以降の桁数を指定します。例えば、Format("{:a}", 255) は0x1.fe00000000000p+7 を返します。 |
A |
浮動小数点 | p ではなく P が指数を示すことを除けば,a 形式と同じです。 |
p |
整数 | 引数をメモリアドレスとして16進数で表示します。例えば、Format("{:p}", 255) は、00000000000000FF を返します。 |
s |
文字列 | 文字列を指定します。入力値が数値の場合、Widthと Precisionの引数が適用される前に、自動的に文字列に変換されます。 |
c |
文字コード | Chr(n) と同様に、1文字をその序列値で指定します。入力値が想定範囲外の場合、折り返す。例えば、Format("{:c}", 116) はt を返します。 |
printfと異なり、サイズ指定子はサポートされていない。整数と浮動小数点の入力値は、すべて64ビットです。
s := "" ; 簡単な置換 s .= Format("{2}, {1}!`r`n", "World", "Hello") ; スペースでパディングする s .= Format("|{:-10}|`r`n|{:10}|`r`n", "Left", "Right") ; 16進数 s .= Format("{1:#x} {2:X} 0x{3:x}`r`n", 3735928559, 195948557, 0) ; 浮動小数点 s .= Format("{1:0.3f} {1:.10f}", 4*ATan(1)) ListVars ; AutoHotkeyのメインウィンドウで等幅テキストを表示させる。 WinWaitActive "ahk_class AutoHotkey" ControlSetText(s, "Edit1") WinWaitClose