数値の操作 |
#1 四捨五入
使用例
'----------------------------------------------------------------- '概要 四捨五入 '引数 dblNum : 数値または任意の有効な数式 ' intKeta : 求める小数点桁数(省略可) '返値 小数点桁数の四捨五入の値を返す '----------------------------------------------------------------- Function SHISYAGONYU(dblNum As Double, Optional intKeta As Integer) As Double Dim dblNo As Double If IsMissing(intKeta) = True Then intKeta = 0 End If dblNo = 10 ^ intKeta SHISYAGONYU = Int(dblNum * dblNo + 0.5) / dblNo End Function Sub 四捨五入() Debug.Print SHISYAGONYU(20.553, 0) Debug.Print SHISYAGONYU(20.553, 1) Debug.Print SHISYAGONYU(20.553, 2) End Sub <実行結果> 21 20.6 20.55
#2 切り上げ
使用例
'----------------------------------------------------------------- '概要 切り上げ '引数 dblNum : 数値または任意の有効な数式 ' intKeta : 求める小数点桁数(省略可) '返値 小数点桁数の切り上げ値を返す '----------------------------------------------------------------- Function KIRIAGE(dblNum As Double, Optional intKeta As Integer) As Double Dim dblNo As Double If IsMissing(intKeta) = True Then intKeta = 0 End If dblNo = 10 ^ intKeta KIRIAGE = Int(dblNum * dblNo + 1) / dblNo End Function Sub 切り上げ() Debug.Print KIRIAGE(20.456, 0) Debug.Print KIRIAGE(20.456, 1) Debug.Print KIRIAGE(20.456, 2) End Sub <実行結果> 21 20.5 20.46
#3 切り捨て
使用例
'----------------------------------------------------------------- '概要 切り捨て '引数 dblNum : 数値または任意の有効な数式 ' intKeta : 求める小数点桁数(省略可) '返値 小数点桁数の切り捨て値を返す '----------------------------------------------------------------- Public Function KIRISUTE(dblNum As Double, Optional intKeta As Integer) As Double Dim dblNo As Double If IsMissing(intKeta) = True Then intKeta = 0 End If dblNo = 10 ^ intKeta KIRISUTE = Int(dblNum * dblNo) / dblNo End Function Sub 切り捨て() Debug.Print KIRISUTE(20.456, 0) Debug.Print KIRISUTE(20.456, 1) Debug.Print KIRISUTE(20.456, 2) End Sub <実行結果> 20 20.4 20.45
#4 消費税計算(外税)
使用例
'----------------------------------------------------------------- '概要 消費税計算(外税) '引数 curKingaku : 対象金額 ' inrTaxRate : 消費税率 ' Hasusyori : 端数処理(省略可) '----------------------------------------------------------------- Enum Hasu Hshisyagonyu = 0 Hkiriage = 1 Hkirisute = 2 End Enum Function SHOUHIZEI(curKingaku As Currency, inrTaxRate As Integer, _ Optional Hasusyori As Hasu) As Currency Dim curTax As Currency If IsMissing(Hasusyori) = True Then Hasusyori = 0 End If curTax = curKingaku * (inrTaxRate / 100) Select Case Hasusyori Case 0 '四捨五入 SHOUHIZEI = CLng(curTax) Case 1 '切り上げ SHOUHIZEI = CLng(curTax + 0.5) Case 2 '切り捨て SHOUHIZEI = Int(curTax) End Select '※CLngの値範囲-2,147,483,648〜2,147,483,647を超えるとエラーが発生します。 ' また、CLng(0.5)は、0を返します。但し、CLng(0.4 + 0.1)は、1を返します。 End Function Sub 消費税() '消費税率5%とします Debug.Print SHOUHIZEI(9999, 5) '四捨五入 Debug.Print SHOUHIZEI(9999, 5, Hkiriage) '切り上げ Debug.Print SHOUHIZEI(9999, 5, 2) '切り捨て End Sub <実行結果> 500 500 499
#5 消費税計算(内税)
使用例
'----------------------------------------------------------------- '概要 消費税計算(内税) '引数 curKingaku : 対象金額 ' inrTaxRate : 消費税率 ' Hasusyori : 端数処理(省略可) '----------------------------------------------------------------- Enum Hasu Hshisyagonyu = 0 Hkiriage = 1 Hkirisute = 2 End Enum Function UCHIZEI(curKingaku As Currency, inrTaxRate As Integer, _ Optional Hasusyori As Hasu) As Currency Dim curTax As Currency If IsMissing(Hasusyori) = True Then Hasusyori = 0 End If curTax = curKingaku - (curKingaku / (1 + (inrTaxRate / 100))) Select Case Hasusyori Case 0 '四捨五入 UCHIZEI = CLng(curTax) Case 1 '切り上げ UCHIZEI = CLng(curTax + 0.5) Case 2 '切り捨て UCHIZEI = Int(curTax) End Select End Function Sub 内税計算() '消費税率5%とします Debug.Print UCHIZEI(10000, 5) '四捨五入 Debug.Print UCHIZEI(10000, 5, shisyagonyu) '四捨五入 Debug.Print UCHIZEI(10000, 5, 1) '切り上げ Debug.Print UCHIZEI(10000, 5, 2) '切り捨て End Sub <実行結果> 476 476 477 476