関数 四捨五入・切上げ・切捨てVBandVBA

※より実装に近く表示させる為、コードの改行を避けています。スマホ等で閲覧される際は向きを変えてご覧ください。

※実装するバージョンによってはバージョンアップの仕様により動作しないコードもあります。実装には動作確認の上ご使用下さい。

Option Explicit


Sub RoundingOff()
'**********************************
'四捨五入・切上げ・切捨てVBandVBA
'**********************************

Dim dblPlus(1) As Double
Dim dblMinus(1) As Double

dblPlus(0) = 99.4
dblPlus(1) = 99.5
dblMinus(0) = -99.4
dblMinus(1) = -99.5

'Int 関数
'引数の小数部分を取り除いた整数値を返します。
Debug.Print Int(dblPlus(0))
Debug.Print Int(dblPlus(1))
Debug.Print Int(dblMinus(0))
Debug.Print Int(dblMinus(1))
'     99
'     99
'   -100
'   -100

'Fix 関数
'引数の小数部分を取り除いた整数値を返します。
Debug.Print Fix(dblPlus(0))
Debug.Print Fix(dblPlus(1))
Debug.Print Fix(dblMinus(0))
Debug.Print Fix(dblMinus(1))
'    99
'    99
'   -99
'   -99

'データ型変換関数
'CInt 関数
'値を整数型 (Integer) に変換します。
Debug.Print CInt(dblPlus(0))
Debug.Print CInt(dblPlus(1))
Debug.Print CInt(dblMinus(0))
Debug.Print CInt(dblMinus(1))
'     99
'    100
'    -99
'   -100

'Format 関数
'式を指定した書式に変換し、値を返します。
Debug.Print Format(dblPlus(0), "0")
Debug.Print Format(dblPlus(1), "0")
Debug.Print Format(dblMinus(0), "0")
Debug.Print Format(dblMinus(1), "0")
'     99
'    100
'    -99
'   -100

'Round 関数
'指定された小数点位置で丸めた数値を返します。
'引数2を省略すると、Round 関数は整数値を返します。
Debug.Print Round(dblPlus(0), 0)
Debug.Print Round(dblPlus(1), 0)
Debug.Print Round(dblMinus(0), 0)
Debug.Print Round(dblMinus(1), 0)
'    99
'    100
'    -99
'   -100

'Application.WorksheetFunction
'ワークシート関数を使用する
'Round 四捨五入
'引数2を省略すると、Round 関数は整数値を返します。
Debug.Print Application.WorksheetFunction.Round(dblPlus(0), 0)
Debug.Print Application.WorksheetFunction.Round(dblPlus(1), 0)
Debug.Print Application.WorksheetFunction.Round(dblMinus(0), 0)
Debug.Print Application.WorksheetFunction.Round(dblMinus(1), 0)
'     99
'    100
'    -99
'   -100

'RoundDown 切り捨て
'引数2を省略すると、RoundDown 関数は整数値を返します。
Debug.Print Application.WorksheetFunction.RoundDown(dblPlus(0), 0)
Debug.Print Application.WorksheetFunction.RoundDown(dblPlus(1), 0)
Debug.Print Application.WorksheetFunction.RoundDown(dblMinus(0), 0)
Debug.Print Application.WorksheetFunction.RoundDown(dblMinus(1), 0)
'    99
'    99
'   -99
'   -99

'RoundUp 切り上げ
'引数2を省略すると、RoundUp 関数は整数値を返します。
Debug.Print Application.WorksheetFunction.RoundUp(dblPlus(0), 0)
Debug.Print Application.WorksheetFunction.RoundUp(dblPlus(1), 0)
Debug.Print Application.WorksheetFunction.RoundUp(dblMinus(0), 0)
Debug.Print Application.WorksheetFunction.RoundUp(dblMinus(1), 0)
'    100
'    100
'   -100
'   -100

'プラス正値とマイナス負値の扱いに要注意ですが
'※エクセルが使える環境ですと「Application.WorksheetFunction」
'を使った方が用途が多いですね。

End Sub
  • はてなブックマークに追加

 

2016年10月01日|[VBサンプルコード]:[関数]