LOTUSSCRIPT 言語


Format 関数

指定した形式に従って数値、日付/時刻、文字列の表示形式を設定します。

構文Format[$] ( expr [ , fmt ] )
構成要素expr


形式
戻り値Format は文字列を含む Variant 型を返し、Format$ は String 型を返します。
expr が文字列で fmt が数値の形式文字列の場合は、文字列から数値への変換が実行されます。変換に成功した場合は、結果の表示形式が設定されます。

文字列を数値に変換できないときは、文字列が日付/時刻として解釈され、数値への変換が実行されます。変換に成功した場合は、結果の表示形式が設定されます。

expr を形式文字列のデータ型に変換できないときは、Format は表示形式を設定しないで expr を返します。

形式コード数値形式expr が数値の場合は、次の節のいずれかの数値形式名を使うか、その次の節の数値形式コードを使って独自の数値形式を作成できます。
数値形式名
形式名expr の値の表示形式
General Numberそのままの値。3 桁ごとの区切り記号はありません
Currencyオペレーティングシステムの各国対応で定められた形式。たとえば、金額値を 3 桁ごとに区切ったり、負数をカッコの中に表示したり、小数点以下を 2 桁にするなどの設定をします。

OS/2 では、この関数は数値に通貨記号を追加しません

Fixed1 桁以上の整数部と 2 桁の小数部で表示します
Standard3 桁ごとの区切り記号、1 桁以上の整数部、2 桁の小数部で表示します
Percentexpr に 100 をかけた値。整数部は 1 桁以上です。小数部は 2 桁で、パーセント記号 (%) が付きます
Scientific指数形式。1 桁の整数部、2 桁の小数部、文字 E または e とべき乗を表す数字が続きます
Yes/No値がゼロならば No、そうでなければ Yes を表示します
True/False値がゼロならば False、そうでなければ True を表示します
On/Off値がゼロならば Off、そうでなければ On を表示します

独自の数値形式文字コード数値の独自の表示形式を作成するために fmt で使える文字を次の表に示します。

形式コード意味
"" (空の文字列)形式を設定しないで値を表示します
0 (ゼロ)桁数を強制表示します。この値にある fmt 内の各桁は、使われていないスペースを埋めるように、先頭または末端もゼロで埋められて表示されます。整数部はすべての桁が表示されます。小数部が fmt より長い桁の場合は、適切に丸められます
# (シャープ記号)値に合わせた桁数で表示されます。0 (桁の強制表示) と同様ですが、先頭または後続のゼロは表示されません
. (ピリオド)小数点。fmt における小数点の位置を示します。-1 から 1 までの数値は、ゼロを小数点のすぐ左に付ける形式でない限り、小数点から始まります。返される形式値に使われる実際の小数点は、オペレーティングシステムの各国対応に指定されている小数点です
% (パーセント記号)パーセント記号。100 倍した値にパーセント記号 (%) を加えたものが fmt の指定された位置に表示されます。パーセント記号を 2 つ以上記述すると、1 つの % ごとに 100 が掛けられます。たとえば、%% は 10000 倍を意味します
, (カンマ)3 桁ごとの区切り記号。少なくとも整数部が 4 桁以上ある数値の場合、小数点から左へ 3 桁ごとに区切るには、桁の形式文字ゼロ (0) または # のペアでカンマを囲みます。返される形式値に実際に使われる 3 桁ごとの区切り記号は、オペレーティングシステムの各国対応に指定されている区切り記号です
例外は、カンマを小数点のすぐ左 (または小数点に相当する位置) に挿入するときです。この場合は、値が 1000 で割られます。たとえば、次の関数は "100" を返します。

x = Format$(100000,"##0,.")

この例で 100000 が絶対値で 1000 より小さい値に置き換えられると、この関数は "0" を返します

E- E+ e- e+指数表記法。数字の桁記号 (ゼロまたは #) を小数点の左に指定して、その数で整数部が何桁表示されるかを指定します。結果は指数で表現されます
E+ または e+ を使うと、すべての指数の符号 (+ または -) が表示されます。E- または e- を使うと、負数の符号 (-) のみが表示されます
E-、E+、e-、e+ に続けて桁数を指定しても、指数の全桁が表示されます。桁記号 (ゼロまたは #) がない場合、指数部がゼロだと何も表示されません。それ以外は、少なくとも 1 桁以上の指数が表示されます。ゼロを使って最低限の指数の桁数を指定できます。指定できる上限は 3 桁です
$ (ドル記号)通貨記号。通貨の値を示します。返される形式値に実際に使われる通貨記号は、オペレーティングシステムの各国対応に指定されている通貨記号です
- + ( ) 空白文字そのもの。これらの文字は、形式文字列で設定されたとおりに表示されます
\ (円記号)リテラル文字への接頭辞。円記号に続く文字はそのまま表示されます。たとえば、\# は # を表示します。円記号自体を表示するには、もう 1 つ円記号を付けます。つまり、\\ は \ を表示します
"ABC"二重引用符で囲まれたリテラル文字列。fmt 引数で二重引用符を指定するには、Chr(34) を使わなければなりません。

二重引用符内の文字は、形式設定されたとおりに表示されます

; (セミコロン)形式セクションの区切り。fmt 内の正数、負数、ゼロ、NULL のセクションを区切ります。負数またはゼロの形式セクションを省略した上で、セミコロンを含めると、それらは正数のセクションで指定した表示形式に設定されます
独自の数値表現の形式には、セミコロンで区切ることで 1 から 4 までのセクションを持てます。複数のセクションを持つ形式文字列では、各セクションが expr の異なる値に適用されます。セクションの数は、個々のセクションが適用される値を決定します。次の表は、1 部と複数部の形式文字列の各セクションの使い方を示しています。

セクションの数説明
1すべての数値に適用される形式
2最初のセクションは正数とゼロに対する形式。
2 番目のセクションは負数に対する形式
3最初のセクションは正数に対する形式。
2 番目のセクションは負数に対する形式。
3 番目のセクションはゼロに対する形式
4最初のセクションは正数に対する形式。
2 番目のセクションは負数に対する形式。
3 番目のセクションはゼロに対する形式。
4 番目のセクションは NULL に対する形式

日付/時刻の形式日付/時刻の値は浮動小数点数として格納されるので、数値の表示形式を設定できます。日付/時刻の表示形式も設定できます。次の節に示す日付/時刻の形式名を使うか、またはその次の節に示す日付/時刻の形式コードを使って独自の表示形式を作成できます。
日付/時刻の形式名
形式名日付/時刻の値の表示形式
General Date標準形式。浮動小数点数を日付/時刻に変換します。値に小数部がないときは、日付のみ表示します。整数部がないときは、時間のみ表示します
Long Dateオペレーティングシステムの各国対応で定義されている長い形式の日付
Medium Dateyy/mmm/dd の形式
Short Dateオペレーティングシステムの各国対応で定義されている短い形式の日付
Long Timeオペレーティングシステムの各国対応で定義されている長い形式の時刻。長い形式の時刻には、常に時間、分、秒が含まれています
Medium Time時間の区切り記号と午前または午後の表記を使った時間 (0 - 12) と分の形式
Short Time時間の区切り記号のみを使った時間 (0 - 23) と分の表記

独自の日付/時刻形式コード次の表に、日付/時刻値の独自の形式を作るために fmt に使える文字を示します。

形式コード意味
: (コロン)時刻の区切り。時刻の値を時間、分、秒で区切ります。返される値に実際に使われるのは、オペレーティングシステムの各国対応でその国に対して指定された時刻の区切りです。
/ (スラッシュ)日付の区切り。日付の値を年、月、日で区切ります。返される値に実際に使われるのは、オペレーティングシステムの各国対応で指定された日付の区切りです
c日付を ddddd、時刻を ttttt で表示します (以下を参照)。値に小数部がなければ日付だけが表示されます。整数部がなければ時間だけが表示されます
y年に対する日数 (1 - 366)
d月に対する日。1 桁の数字の場合、先頭にゼロはつきません (1 - 31)
dd月に対する日。1 桁の数字の場合、先頭にゼロがつきます (01 - 31)
ddd3 文字で表現した英語の曜日 (Sun - Sat)
dddd省略しない英語の曜日 (Sunday - Saturday)
ddddd各国対応の短い日付形式で表された、連続する完全な日付 (年、月、日) の値。オペレーティングシステムに短い日付形式が指定されていない場合は、既定で日付形式 yy/mm/dd が使用されます
dddddd各国対応の長い日付形式で表された、連続する完全な日付 (年、月、日) の値。オペレーティングシステムに長い日付形式が指定されていない場合は、既定で日付形式 mmmm dd, yyyy が使用されます
w数字で表された曜日 (1 - 7)。日曜が 1 です
ww年に対する週 (1 - 53)
m年に対する月。1 桁の場合、先頭にゼロはつきません (1 - 12)。fmt 内で h が文字に先行している場合は、時間に対する分を表示します。1 桁の数字の場合、先頭にゼロはつきません (0 - 59)
mm年に対する月。1 桁の数字の場合、先頭にゼロがつきます (01 - 12)。fmt 内で h が文字に先行している場合は、時間に対する分を表示します。1 桁の数字の場合、先頭にゼロがつきます (00 - 59)
mmm3 文字の省略形で表した月名 (Jan - Dec)
mmmm完全なスペルで表現した月の名前 (January - December)
q数値で表した年の四半期 (1 - 4)
yy西暦の下 2 桁の数字 (00 - 99)。Lotus Notes または Lotus Domino で yy を指定すると、LotusScript は 50 から 99 を 1950 年から 1999 年、00 から 49 を 2000 年から 2049 年として解釈します。スーパーオフィスでは yy の解釈が異なることに注意してください
yyyy西暦の完全な (4 桁) 数値 (0100 - 9999)
h日に対する時間。1 桁の数字の場合、先頭にゼロはつきません (0 - 23)
hh日に対する時間。1 桁の数字の場合、先頭にゼロがつきます (00 - 23)
n時間に対する分。1 桁の数字の場合、先頭にゼロはつきません (0 - 59)
nn時間に対する分。1 桁の数字の場合、先頭にゼロがつきます (00 - 59)
s分に対する秒。1 桁の数字の場合、先頭にゼロはつきません (0 - 59)
ss分に対する秒。1 桁の数字の場合、先頭にゼロがつきます (00 - 59)
tttttオペレーティングシステムの各国対応に指定された時刻の区切りを使った、連続する完全な時刻 (時、分、秒) の値。各国対応の先行ゼロの設定が TRUE で、時刻が 10 時 (午前または午後) より前のときは、先頭にゼロがつきます。既定の時刻形式は h:mm:ss です
AM/PM am/pm時間を 1 から 12 までの値とし、午前は AM または am、午後は PM または pm を表示します
A/P a/p時間を 1 から 12 までの値とし、午前は A または a、午後は P または p を表示します
AMPM1 から 12 までの値を使います。WIN.INI で午前の時間を表す 1159 string (s1159) の内容と、午後の時間を表す 2359 string (s2359) の内容を表示します。AMPM では大文字小文字が区別されませんが、表示される文字列の大文字と小文字はオペレーティングシステムの各国対応にある文字列と同じです。既定の形式は AM/PM です
次の表に、1995 年 4 月 12 日の午後 6 時 43 分 04 秒が独自の日付/時刻形式でどのように表示されるかを示します。

形式表示
m/d/yy4/12/95
d-mmm-yy12-Apr-95
d-mmmm12-April
mmmm-yyApril-95
y102.00
hh:mm AM/PM06:43 PM
h:mm:ss a/p6:43:04 p
h:mm18:43
h:mm:ss18:43:04
m/d/yy h:mm4/12/95 18:43

文字列形式コードFormat または Format$ を使って文字列の表示形式を設定するには、次の表の形式コードを使って独自の文字列形式を作成します。文字列形式名はありません。
独自の文字列形式には、1 つのセクションか、セミコロン (;) で区切られた 2 つのセクションが使えます。形式が 1 つの場合は、すべての文字列に適用されます。形式が 2 つの場合は、最初が空でない文字列に対応し、2 番目は NULL と空の文字列 ("") に対応します。

次の表に、独自の文字列形式を作るために fmt 内で使える文字を示します。

形式コード意味
@ (アットマーク)強制的に文字を表示します
表示形式を設定された文字がその位置にあれば、それを表示します。ない場合は空白を出力します。@ は fmt に感嘆符 (!) が含まれていない限り、右から左方向に埋められていきます
& (アンパサンド)文字を表示します

表示形式を設定された文字がその位置にあれば、それを表示します。ない場合は何も表示しません。& は fmt に感嘆符 (!) が含まれていない限り、右から左方向に埋められていきます

< (小なり記号)表示形式を設定された半角英字が小文字で表示されます
> (大なり記号)表示形式を設定された半角英字が大文字で表示されます
! (感嘆符)@ や & を、右から左ではなく、左から右へ埋めるようにします

アジアの言語における日付と時刻の形式を設定するFormat 関数では、LotusScript の日本語版、中国語版、台湾語版、韓国語版の日付と時刻用に、他の形式設定文字がサポートされます。
1 バイト文字だけが形式設定文字として認識されます。2 バイト文字はリテラル文字として扱われます。中国語版と台湾語版の場合は、大文字と小文字が区別される形式設定文字があります (次の段落を参照)。他のすべてのアジア言語の場合、日付/時刻の形式設定文字の大文字と小文字は区別されません。

日本語版 LotusScript の Format 関数に使われる日付/時刻の形式設定コードが WIN.INI にも入っていると、そのコードは正しく解釈されます。たとえば、形式設定式 Long Date は、日本語版でも英語版でも同様に WIN.INI Long Date 形式を使うことを意味します。

次の形式は、Lotus 製品のアジア版でのみ有効です。

日付/時刻の形式コード最初の表は、日本語版の形式コードを示しています。
形式コード意味
aaa省略形の曜日 (1 つの 2 バイト文字)
aaaa省略しない曜日 (日曜日 - 土曜日)
e年号による年。1 から始まります
ee年号による年。ゼロで始まります
g年号の頭文字 (M、T、S、H)
gg省略形の年号 (明、大、昭、平)
ggg省略しない年号 (明治、大正、昭和、平成)

次の表は、中国語版の形式コードを示しています。
形式コード意味
aaaa省略しない形式の曜日 (3 つの 2 バイト文字)
O月 (2 バイト)
o月 (1 バイト)
A日 (2 バイト)
a日 (1 バイト)
E短い形式の年 (2 バイト)
e短い形式の年 (1 バイト)
EE長い形式の年 (2 バイト)
ee年 (1 バイト)

次の表は、台湾語版の形式コードを示しています。
形式コード意味
aaaa省略しない形式の曜日 (3 つの 2 バイト文字)
O月 (2 バイト)
o月 (1 バイト)
A日 (2 バイト)
a日 (1 バイト)
E年号による年 (2 バイト)
e年号による年 (1 バイト)
EE年号の省略形が付いた年 (2 バイト)
ee年号の省略形が付いた年 (1 バイト)
EEE年号付きの年 (2 バイト)
eee年号付きの年 (1 バイト)
EEEE西暦年号付きの年 (2 バイト)
eeee西暦年号付きの年 (1 バイト)
次の表は、韓国語版の形式コードを示しています。

形式コード意味
aaa省略形の曜日 (1 つの 2 バイト文字)
aaaa省略しない形式の曜日 (3 つの 2 バイト文字)


関連項目