しかもFormatCurrency関数の引数には、
小数点以下の桁数も指定できるので、とても便利です。
金額の計算部分のプログラムもシンプルになります。
それでは早速、試してみましょう。
【1】以下のようにプログラミングします。
前回作成した「sample024.vbs」をコピーして、
ファイル名を変更し、書き換えてもかまいません。
ファイル名 sample024-1.vbs
Option Explicit
Dim ans
Dim y, m, d, h, min, s
y = InputBox("年収を入力してください。(円)", "入力")
m = y / 12
d = y / 365
h = d / 24
min = h / 60
s = min / 60
ans = "あなたの収入換算" & vbCr _
& "年:" & FormatCurrency(y) & vbCr _
& "月:" & FormatCurrency(m) & vbCr _
& "日:" & FormatCurrency(d) & vbCr _
& "時:" &FormatCurrency(h,1) & vbCr _
& "分:" & FormatCurrency(min,2) & vbCr _
& "秒:" & FormatCurrency(s,3)
MsgBox ans, , "答え"
【2】準備ができたら、vbsファイルをダブルクリックして実行します。
年収の金額を入力してみてください。
以下の図は年収5百万円の場合です。
【3】すると、以下のような計算結果になるはずです。
通貨形式なので、数値の前に\(エンマーク)が付いています。
また3桁ごとに「,」(カンマ)で区切られているので、
一目で金額がいくらなのか、分かりやすくなりました。
そして時間給からは、小数点以下も表示しています。
前のsample024.vbsの結果と2つ並べて表示すると、違いが分かりやすいです。
秒の部分で小数点以下第3位に違いがありますが、
これは使っている関数や計算によって、「丸め誤差」があるためです。
【プログラムの解説】
FormatCurrency関数を使うため、小数点以下の桁数を考えなくて良いので、
計算部分のプログラムがとてもシンプルになりました。
m = y / 12
d = y / 365
h = d / 24
min = h / 60
s = min / 60
sample024.vbsと比較するとよくわかりますが、
前の計算の値を次の計算で使えるので、式自体がシンプルです。
FormatCurrency関数の最初の引数は、書式を変換する式(または値)です。
2番目の引数が、小数点以下の桁数を指定する部分ですが、省略も可能です。
2番目以降の引数を省略している場合
FormatCurrency(y)
FormatCurrency(m)
FormatCurrency(d)
2番目の引数で、それぞれ小数点以下1位~3位まで指定している場合
FormatCurrency(h,1)
FormatCurrency(min,2)
FormatCurrency(s,3)
この部分で桁数を指定できるので、上記の計算部分がシンプルになっているわけです。
FormatCurrency関数には、他にも引数がありますが、省略できるので書いていません。
ps:
上記の計算式の部分でもFormatCurrency関数は使えますが、
かえって書き方が複雑になるので、今回の例のようなプログラムにしました。
VBScriptには他にもいろんな関数が用意されているので、
何ができるのか知っておくと便利ですよ。