Format 関数 (LotusScript 言語)

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

構文

Format[$] ( expr [ , fmt ] )

要素

expr

任意の式。式は、fmt が数値形式のときは数式、日付/時刻形式のときは日付/時刻、文字列形式のときは文字列として評価されます。

fmt

オプション。形式文字列は、LotusScript® であらかじめ定義された形式の名前、または形式文字の文字列です。この形式文字列を省略すると、Format[$] は正数の先頭の空白を省略して STR[$] と同じ処理をします。

戻り値

Format は文字列を含む Variant 型を返し、Format$ は String 型を返します。

expr が文字列で fmt が数値の形式文字列の場合は、文字列から数値への変換が実行されます。変換に成功した場合は、結果の表示形式が設定されます。

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

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

形式コード

数値形式

expr が数値の場合は、次の節のいずれかの数値形式名を使用するか、その次の節の数値形式コードを使用して独自の数値形式を作成できます。

数値形式名

形式名

expr の値の表示形式

General Number

そのままの値。3 桁ごとの区切り記号はありません。

Currency

オペレーティングシステムの各国対応で定められた形式。例えば、金額値を 3 桁ごとに区切ったり、負数をカッコの中に表示したり、小数点以下を 2 桁にするなどの設定をします。

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

Fixed

1 桁以上の整数部と 2 桁の小数部で表示します。

Standard

3 桁ごとの区切り記号、1 桁以上の整数部、2 桁の小数部で表示します。

Percent

expr に 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"

¥ の代わりに、引用符を使用して複数の文字を「エスケープ」します。引用符は出力で表示されません。

例えば、値 7034 を次の形式文字列で形式設定する場合:

#"a#c"###

出力は次のとおりです。

7a#c034

二重引用符をリテラル文字列に含めるには、代わりの引用符である | または {} を使用するのが最も簡単です。例を次に示します。

Format(x, {#"a#c"###})

; (セミコロン)

形式セクションの区切り。fmt 内の正数、負数、ゼロ、NULL のセクションを区切ります。負数またはゼロの形式セクションを省略した上で、セミコロンを含めると、それらは正数のセクションで指定した表示形式に設定されます。

独自の数値表現の形式には、セミコロンで区切ることで 1 から 4 までのセクションを持てます。複数のセクションを持つ形式文字列では、各セクションが expr の異なる値に適用されます。セクションの数は、個々のセクションが適用される値を決定します。次の表は、1 部と複数部の形式文字列の各セクションの使い方を示しています。

セクションの数

説明

1

すべての数値に適用される形式

2

最初のセクションは正数とゼロに対する形式。2 番目のセクションは負数に対する形式。

3

最初のセクションは正数に対する形式。2 番目のセクションは負数に対する形式。3 番目のセクションはゼロに対する形式

4

最初のセクションは正数に対する形式。2 番目のセクションは負数に対する形式。3 番目のセクションはゼロに対する形式。4 番目のセクションは NULL に対する形式。

日付/時刻の形式

日付/時刻の値は浮動小数点数として格納されるため、数値の表示形式を設定できます。日付/時刻の表示形式も設定できます。次の節に示す日付/時刻の形式名を使用するか、その次の節に示す日付/時刻の形式コードを使用して独自の表示形式を作成できます。

日付/時刻の形式名

形式名

日付/時刻の値の表示形式

General Date

標準形式。浮動小数点数を日付/時刻に変換します。値に小数部がないときは、日付のみ表示します。整数部がないときは、時間のみ表示します。

Long Date

オペレーティングシステムの各国対応で定義されている長い形式の日付。

Medium Date

yy/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)

ddd

3 文字で表現した英語の曜日 (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)。

mmm

3 文字の省略形で表した月名 (Jan - Dec)

mmmm

完全なスペルで表現した月の名前 (January - December)

q

数値で表した年の四半期 (1 - 4)

yy

西暦の下 2 桁の数字 (00 - 99)。Notes® または Domino® で yy を指定すると、LotusScript は 50 から 99 を 1950 年から 1999 年、00 から 49 を 2000 年から 2049 年として解釈します。SmartSuite® では 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 を表示します

AMPM

1 から 12 までの値を使用します。WIN.INI で午前の時間を表す 1159 string (s1159) の内容と、午後の時間を表す 2359 string (s2359) の内容を表示します。AMPM では大文字小文字が区別されませんが、表示される文字列の大文字と小文字はオペレーティングシステムの各国対応にある文字列と同じです。既定の形式は AM/PM です

次の表に、1995 年 4 月 12 日の午後 6 時 43 分 04 秒が独自の日付/時刻形式でどのように表示されるかを示します。

形式

表示

m/d/yy

4/12/95

d-mmm-yy

12-Apr-95

d-mmmm

12-April

mmmm-yy

April-95

y

102.00

hh:nn AM/PM

06:43:00 午後 午前 AM

h:nn:ss a/p

6:43:04 p

h:nn

18:43

h:nn:ss

18:43:04

m/d/yy h:nn

4/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 形式を使用することを意味します。

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

日付/時刻の形式コード

最初の表は、日本語版の形式コードを示しています。

形式コード

意味

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 バイト文字)