Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


3065 / 13646 ツリー ←次へ | 前へ→

【64522】「五捨六入」のVBAを教えてください。 八家九僧陀 10/2/18(木) 20:50 質問[未読]
【64525】Re:「五捨六入」のVBAを教えてください。 yoshi 10/2/18(木) 23:55 回答[未読]
【64526】Re:「五捨六入」のVBAを教えてください。 Yuki 10/2/19(金) 9:00 発言[未読]
【64527】Re:「五捨六入」のVBAを教えてください。 超初心者 10/2/19(金) 9:03 発言[未読]
【64529】Re:「五捨六入」のVBAを教えてください。 SS 10/2/19(金) 12:43 発言[未読]

【64522】「五捨六入」のVBAを教えてください。
質問  八家九僧陀  - 10/2/18(木) 20:50 -

引用なし
パスワード
   またまたお世話になります。
健康保険料や厚生年金保険料は事業者と被保険者と折半することになっていますが、被保険者負担分は、50銭未満は切り捨て50銭を越える場合は切り上げとなっています。

userformのtextbox1に標準報酬額を入力すると、textbox2,textbox3にそれぞれ事業主負担分、被保険者負担分を「五捨六入」で計算して表示させたいのですが、「五捨六入」を含む計算式のVBAを教えてください。

【64525】Re:「五捨六入」のVBAを教えてくださ...
回答  yoshi  - 10/2/18(木) 23:55 -

引用なし
パスワード
   「五捨六入」を含む計算式のVBAを教えてください。

今回の場合は小数点以下の桁数が0固定ですから、
簡単に、計算結果の値を長整数型(Long)の変数に代入するだけでもいいと思います。
一例
 Dim ans As Long
 ans = 1000.5'実際は計算式
 MsgBox ans

小数点以下の桁数を指定出来る一般的なRound関数のような五捨六入関数ならちょっと工夫が必要でしょう。

【64526】Re:「五捨六入」のVBAを教えてくださ...
発言  Yuki  - 10/2/19(金) 9:00 -

引用なし
パスワード
   こんにちは。

>一例
> Dim ans As Long
> ans = 1000.5'実際は計算式
> MsgBox ans
>
 ans = 1001.5'実際は計算式
 MsgBox ans
は 1002 になりますね。

こんな風では
Const dUp  As Double = 0.4
Dim ans   As Long
ans = Int(1001.5 + dUp)
Debug.Print ans

【64527】Re:「五捨六入」のVBAを教えてくださ...
発言  超初心者  - 10/2/19(金) 9:03 -

引用なし
パスワード
   ▼Yuki さん:
標準報酬、計算結果は正の数しか発生しない、
という事が前提条件です。

[金額] = -Int(-textbox1.Value * [率] + 0.5)

一応、四捨五入ではなく、五捨六入?です^^
また、標準報酬上限等の変更は適宜加えて下さい。


余談ですが、会社負担、個人負担の内どちらかは、
合計から片方の金額を引いた方が良い? かも^^;

【64529】Re:「五捨六入」のVBAを教えてくださ...
発言  SS  - 10/2/19(金) 12:43 -

引用なし
パスワード
   ▼八家九僧陀 さん:

姑息な手段ですが十銭引いて四捨五入で答えは出ますね。
これが一番簡単だと思いますが、まあ安直な手段は間違えの元なので
止めた方が良いかもしれません。


>またまたお世話になります。
>健康保険料や厚生年金保険料は事業者と被保険者と折半することになっていますが、被保険者負担分は、50銭未満は切り捨て50銭を越える場合は切り上げとなっています。
>
>userformのtextbox1に標準報酬額を入力すると、textbox2,textbox3にそれぞれ事業主負担分、被保険者負担分を「五捨六入」で計算して表示させたいのですが、「五捨六入」を含む計算式のVBAを教えてください。

3065 / 13646 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free