可変数の入力値を、フォーマット文字列に従って整形します。
String := Format(FormatStr , Values...)
型:文字列
{インデックス:フォーマット}
という形式のリテラルテキストとプレースホルダからなるフォーマット文字列です。
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*)
型:文字列
この関数は、指定された文字列を整形したものを返す。
各フォーマット指定子は、以下の構成要素をこの順序で含むことができる(空白は除く):
フラグ幅 .精度 ULTタイプ
Flags: Zero or more flags from the flag table below to affect output justification and prefixes.
Width: A decimal integer which controls the minimum width of the formatted value, in characters. デフォルトでは、値は右寄せになり、パディングにはスペースが使用されます。これは、-
(左寄せ)および0
(ゼロプレフィックス)フラグを使用することで上書きすることができます。
.Precision: A decimal integer which controls the maximum number of string characters, decimal places, or significant digits to output, depending on the output type. その前に必ず小数点が付きます。精度を指定すると、値が切り捨てられたり、丸められたりすることがあります。出力の種類と精度値によるそれぞれの影響は以下の通りです(出力の種類についての説明は下表を参照):
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: A character from the type table below indicating how the input value should be interpreted. 省略された場合、デフォルトはs
です。
Flag | 意味 |
---|---|
- |
指定されたフィールド幅の範囲内で結果を左寄せにする(必要に応じて右側にスペースを挿入します)。例えば、 省略された場合、結果は与えられたフィールド幅の中で右寄せされます。 |
+ |
出力値が符号付きである場合、符号(+または-)を前置詞として使用します。例えば、 省略した場合は、負の符号付き値(-)に対してのみ符号が表示されます。 |
0 |
widthの前に0を付けると、最小幅に達するまで先頭の0が追加されます。例えば、 省略した場合、パディングは行われない。 |
|
出力値が符号付きで正数である場合、スペースを1つ使って前置します。The space is ignored if both 省略した場合は、スペースが表示されません。 |
# |
o、x、Xフォーマットと併用する場合、#フラグはそれぞれ e、E、f、a、Aフォーマットで使用する場合、#フラグは出力値に強制的に小数点を含ませる。例えば、 gまたはGフォーマットと併用する場合、#フラグは出力値に小数点以下を強制的に含ませ、末尾のゼロの切り捨てを防止します。 c、d、i、u、s と共に使用する場合は無視されます。 |
Type Character | Argument | Output format |
---|---|---|
d or i |
Integer | 符号付き10進数整数。例えば、Format("{:d}", 1.23) は1 を返します。 |
u |
Integer | 符号なし10進数整数。 |
x または X |
Integer | 符号なし16進数整数。x のケースによって "abcdef"または "ABCDEF" を使用します。0x は {:#x} のように# フラグが使用されていない限り、接頭辞は含まれない。常にプレフィックスを含むようにするには、0x{:x} などを使用します。例えば、Format("{:X}", 255) はFF を返します。 |
o |
Integer | 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は + または -.For example, Format("{:e}", 255) returns 2.550000e+02 . |
E |
浮動小数点 | e ではなくEが指数を導入することを除いて、e フォーマットと同じです。 |
g |
浮動小数点 | 符号付き値は、f またはe のフォーマットで表示され、与えられた値と精度に対してよりコンパクトなほうを選択します。e 形式は,値の指数が-4未満,または精度引数以上の場合にのみ使用されます。末尾のゼロは切り捨てられ、小数点は1桁以上続く場合のみ表示されます。 |
G |
浮動小数点 | g 形式と同じ。ただし、e ではなく E が指数(適切な場合)を導入している。 |
a |
浮動小数点 | h.hhhhは仮数部の16進数(小文字を使用)、ddは指数部の1桁以上の数字を示す。精度は、ポイント以降の桁数を指定します。For example, Format("{:a}", 255) returns 0x1.fe00000000000p+7 . |
A |
浮動小数点 | p ではなく P が指数を示すことを除けば,a 形式と同じです。 |
p |
Integer | 引数をメモリアドレスとして16進数で表示します。For example, Format("{:p}", 255) returns 00000000000000FF . |
s |
String | 文字列を指定します。入力値が数値の場合、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