スポンサードリンク

VBScriptで作る収入換算アプリの回答例と解説。

VBScriptで作る収入換算のアプリケーションソフトの課題はできましたか?

それでは解答例です。

【1】以下のようにプログラミングします。

ファイル名 sample024.vbs

Option Explicit

Dim ans
Dim y, m, d, h, min, s

y = InputBox("年収を入力してください。(円)", "入力")

m = Round(y / 12)
d = Round(y / 365)
h = Round(d / 24 * 10) / 10
min = Round(h / 60 * 100) / 100
s = Round(min/60 * 1000) / 1000

ans = "あなたの収入換算" & vbCr _
    & "年:" & y & "円" & vbCr _
    & "月:" & m & "円" & vbCr _
    & "日:" & d & "円" & vbCr _
    & "時:" & h & "円" & vbCr _
    & "分:" & min & "円" & vbCr _
    & "秒:" & s & "円"

MsgBox ans, , "答え"



【2】vbsファイルをダブルクリックして実行します。

図のように、例えば年収の金額に5百万円と入力する場合は、
5000000 と入力します。

VBScript

*数字は、全て半角で入力します。


【3】すると、以下のような計算結果になるはずです。

VBScript

小数点以下の桁数が、ちゃんと表示されています。

時、分、秒の換算が思ったより低いのは、時給を24時間で計算しているからです。

つまり寝ている間も働いていることになっています。

一般的な平均労働時間の8時間で計算すると、それなりの時給になるはずです。

例えば、一日の平均労働時間が8時間の人は、
24時間 ÷ 8時間 = 3 なので、
時、分、秒の換算を、それぞれ3倍すると、労働時間当たりの収入がわかります。

ただし、そうなると残業時間が考慮されなくなるので、
今回はわざと24時間で計算しました。

個々の状況に合わせて、倍率を変えると、現実に近くなるはずです。

または今後の改善点として、一日の平均労働時間を、
インプットボックスから入力できるようにして、
プログラムの中で計算に利用すれば、より実用的なアプリになるでしょう。

仮に年収100億円の人の収入換算は、こんな結果になります。

VBScript

やっぱりお金持ちは凄いですねw


【プログラムの解説】
変数を宣言している部分です。
Dim ans
Dim y, m, d, h, min, s

ansは答え、
yは年、mは月、dは日、hは時、minは分、sは秒の金額を表します。
min(分)だけ変数名が長いのは、m(月)と区別するためです。

InputBoxを表示し、ユーザーに入力してもらい、変数に代入している部分です。
y = InputBox("年収を入力してください。(円)", "入力")

Round関数を使い、四捨五入してから、変数に代入している部分です。
m = Round(y / 12)
d = Round(y / 365)
h = Round(d / 24 * 10) / 10
min = Round(h / 60 * 100) / 100
s = Round(min/60 * 1000) / 1000

月収は年収を12か月で割ると出せます。

日収は、毎月の日数が変化するので、
年収を365日で割ることで計算しています。
(今回は、うるう年を考慮していません。)

四捨五入による丸め誤差を気にしなければ、
前の式の計算結果を、次の式で使えます。

Round関数は、小数点以下しか四捨五入ができません。

そこで、ちょっと工夫が必要です。

例えば、年収5百万円の人の場合、
時給換算では、計算機で計算すると、
570.77625 となります。

この時、そのままRound関数で四捨五入すると、
571 になります。

時給は小数点第1位まで表示したいので、そのままでは使えません。
そこで元の数字を10倍しておいて、
5707.7625 を四捨五入します。

すると5708になりますよね?

あとは元の桁に戻すため、10で割ります。
答えは、570.8円になるわけです。

分や秒でも仕組みは同じで、
掛けたり、割ったりする単位が変わるだけです。

残りのプログラムは、計算した値を文字列として組み立て、
変数に代入しておいて、
最後にメッセージボックスに答えを表示しているだけです。

ans = "あなたの収入換算" & vbCr _
"年:" & y & "円" & vbCr _
"月:" & m & "円" & vbCr _
"日:" & d & "円" & vbCr _
"時:" & h & "円" & vbCr _
"分:" & min & "円" & vbCr _
"秒:" & s & "円"

MsgBox ans, , "答え"

どうでしたか?

解答例を見なくても出来た、プログラムの書き方が違っても同じ結果が出せればOKです。

ステップ順に学習を進め、理解している人は、
ほとんど問題なくプログラミングできたと思います。

スポンサードリンク






VBScript 初心者入門講座 TOPへ