予算表とか、決算書の様式作る時って、表記の単位が【単位:千】とかって特殊な表記になってたりしますね。
しかも予算の場合は切り上げしてほしかったり、執行額の場合は四捨五入してほしかったり、いろいろありますよね。
今日は、四捨五入・切り上げ・切り下げ・桁指定・端数丸めなどなどできるノードを作ってみました。
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桁区切りカンマ
- 「あり」、「なし」
オプション自体は細かい説明なくても・・・ネ。
選択した通りになってくるかと思いますよ( ^ω^ )