• ベストアンサー

EXCEL VBAで計算値を四捨五入、切り上げ、切捨てする方法

ネットで探してみたのですが、計算結果を四捨五入して特定のセルを 返すにはどうしたらいいのでしょうか? Sub hokangosa() Dim ZPS As Double Dim ZPOS As Double Dim DMN As Double MsgBox (" >>> 補間誤差自動計算 <<< ") MsgBox (" >>> 初期値入力します <<< ") ZPS = InputBox(">>> ステップを入力してください<<<") ZPOS = Sheet1.Cells(22, 4).Value DMN = ZPOS / ZPS Sheet1.Cells(23, 6).Value = DMN End Sub ここでDMNの値を四捨五入したいです。 またこれとは別に切上げ、切捨ても教えていただけるとありがたいです。

質問者が選んだベストアンサー

  • ベストアンサー
  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.2

DMN = Application.WorksheetFunction.Round(ZPOS / ZPS, 0) で、四捨五入 DMN = Application.RoundDown(ZPOS / ZPS, 0) で切り捨て DMN = Application.RoundUp(ZPOS / ZPS, 0) で切り上げです。 引数で、対象桁を変更できます。

dadao
質問者

お礼

四捨五入とはいわず、worksheetFunctionという手はいろいろ使えそうですね。 ありがとうございました。

その他の回答 (1)

  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.1

VBAでもワークシート関数が使えますから DMN = Application.RoundDown(ZPOS / ZPS, 1) DMN = Application.RoundUp(ZPOS / ZPS, 1) のように記述したらどうですか。小数点以下の桁数は変更してください

dadao
質問者

お礼

ありがとうございます。 なるほど、桁数の指定もできるんですね。 ありがとうございました。