>>594
本気で皆目見当がつかないなら小学校の算数からやり直して来い

MsgBox MROUND(10, 3) '10 を 3 の倍数になるように丸めます (9)
MsgBox MROUND(-10, -3) '-10 を -3 の倍数になるように丸めます (-9)
MsgBox MROUND(1.3, 0.2) '1.3 を 0.2 の倍数になるように丸めます (1.4)
MsgBox MROUND(5, -2) '5 と -2 の符号が異なるため、計算結果はエラー値になります (#NUM!)

Function MROUND(Arg1, Arg2)
Arg1 = CCur(Arg1)
Arg2 = CCur(Arg2)
If Sgn(Arg1) <> Sgn(Arg2) Then Err.Raise 5
Dim x, m
x = Fix(Arg1 / Arg2)
m = Arg1 - (Arg2 * x)
If Abs(m) >= Abs(Arg2 / 2) Then
x = x + 1
End If
MROUND = Arg2 * x
End Function

CCurしてるのは浮動小数点の誤差を避けるためな
xが倍率、mが余り