予算表とか、決算書の様式作る時って、表記の単位が【単位:千】とかって特殊な表記になってたりしますね。
しかも予算の場合は切り上げしてほしかったり、執行額の場合は四捨五入してほしかったり、いろいろありますよね。
今日は、四捨五入・切り上げ・切り下げ・桁指定・端数丸めなどなどできるノードを作ってみました。
1.単位変換
切り上げ・切り捨て・四捨五入を正しく行う部分はこちらを参考にさせて頂きました。
スクリプト実行ステージのスクリプトタブに以下のコードを張り付ければ実装できます。
Dim ret, retvar
Dim in1, in2, in3, in4, in5, omit, comma, afdec
in1 = CCur(!元の値!)
in2 = !倍率変換|そのまま,⇒【単位:万】,⇒【単位:千】,⇒【単位:百】,【単位:万】解除,【単位:千】解除,【単位:百】解除!
in3 = !表示書式|整数,少数1桁,少数2桁,少数3桁,一の位丸め,十の位丸め,百の位丸め!
in4 = !端数処理|四捨五入,切り捨て,切り上げ!
in5 = !3桁区切りカンマ|あり,なし!
ret = CCur(0)
retvar = $結果$
Select Case in2
Case "⇒【単位:万】"
ret = in1 / 10000
Case "⇒【単位:千】"
ret = in1 / 1000
Case "⇒【単位:百】"
ret = in1 / 100
Case "【単位:万】解除"
ret = in1 * 10000
Case "【単位:千】解除"
ret = in1 * 1000
Case "【単位:百】解除"
ret = in1 * 100
Case Else
ret = in1
End Select
omit = 0
Select Case in3
Case "整数"
omit = 1
afdec = 0
Case "少数1桁"
omit = 0.1
afdec = 1
Case "少数2桁"
omit = 0.01
afdec = 2
Case "少数3桁"
omit = 0.001
afdec = 3
Case "一の位丸め"
omit = 10
afdec = 0
Case "十の位丸め"
omit = 100
afdec = 0
Case "百の位丸め"
omit = 1000
afdec = 0
End Select
ret = ret / omit
Select Case in4
Case "四捨五入"
ret = Fix(ret + (0.5 * Sgn(ret)))
Case "切り捨て"
ret = Fix(ret)
Case "切り上げ"
ret = Int(Abs(ret) * -1) * (Sgn(ret) * -1)
End Select
ret = ret * omit
Select Case in5
Case "あり"
comma = True
Case "なし"
comma = False
End Select
Call SetUMSVariable(retvar, FormatNumber(ret, afdec, , , comma))
2.設定タブはこんな感じ。

- 元の値 ⇒ 変換する対象数値を設定(数値入れないとエラーになるよ。)
- 倍率変換
- 「そのまま」 ⇒ 変換なし
- 「⇒【単位:万】」 ⇒ 1/10000にします
- 「⇒【単位:千】」 ⇒ 1/1000にします
- 「⇒【単位:百】」 ⇒ 1/100にします
- 「【単位:万】解除」 ⇒ 10000倍にします
- 「【単位:千】解除」 ⇒ 1000倍にします
- 「【単位:百】解除」 ⇒ 100倍にします
- 表示書式
- 「整数」
- 「少数1桁」
- 「少数2桁」
- 「少数3桁」
- 「一の位丸め」
- 「十の位丸め」
- 「百の位丸め」
- 端数処理
- 「四捨五入」
- 「切り捨て」
- 「切り上げ」
- 3桁区切りカンマ
- 「あり」、「なし」
オプション自体は細かい説明なくても・・・ネ。
選択した通りになってくるかと思いますよ( ^ω^ )