VBA 올림, 반올림 및 내림 함수

Written by

Editorial Team

Reviewed by

Steve Rynearson

Translated by

Younjung Kim

Last updated on 3월 10, 2023

VBA Round

VBA Round 함수는 숫자를 지정된 자릿수로 반올림합니다.

VBA Round 함수 구문

VBA Round 함수의 구문은 다음과 같습니다:

Round(표현식, 소수점 이하 자리수) where:

  • 표현식- 반올림할 숫자입니다.
  • 소수점 이하 자리수 (선택사항) – 반올림할 소수점 이하 자릿수를 지정하는 정수입니다. 값은 0보다 크거나 같아야 합니다(>=0). 비워두면 기본값인 0이 사용되며, 이는 함수가 가장 가까운 정수로 반올림한다는 의미입니다.

 

이제 소수점 이하 1자리에서 반올림하는 VBA Round 함수가 어떻게 작동하는지 확인할 수 있도록 예제를 살펴보겠습니다:

Sub Round1()

Msgbox Round(7.25, 1)

End Sub

결과로 나온 메시지박스는 아래와 같습니다:

VBA Round to 1 Decimal

변수로 VBA Round 함수 이용하기

위의 예제에서는 반올림할 숫자를 함수에 직접 입력했지만, 일반적으로는 변수를 사용하여 반올림합니다. 다음은 변수를 사용하는 예제입니다:

참고: 소수점 값을 저장하기 위해 Double 변수 유형을 사용합니다.

Sub RoundUsingVariable()

Dim unitcount As Double

unitcount = 7.25

MsgBox "값은 " & Round(unitcount, 1)

End Sub

결과는 아래와 같습니다:

VBA Round 결과 예시

함수에 사용된 숫자 자리수 결과
7.25 0 7
7.25 1 7.2
7.25 2 7.25
-7.25 1 -7.2
-7.25 2 -7.25

 

셀 값을 VBA Round 함수에 사용하기

VBA에서 직접 셀 값을 반올림할 수도 있습니다:

Sub RoundCell()
Range("A1").Value = Round(Range("A1").Value, 2)
End Sub

VBA RoundUp 함수

VBA를 사용하여 숫자를 올림하고 싶다고 가정해 보겠습니다. 내장된 VBA 올림에 해당하는 함수는 없으며 대신 VBA 코드에서 Excel RoundUp워크시트 함수를 호출할 수 있습니다:

roundupUnitcount = Application.WorksheetFunction.RoundUp(unitcount, 3)

WorksheetFunction 개체를 사용하여 Excel의 워크시트 함수를 VBA에서 사용할 수 있습니다. 호출할 수 없는 워크시트 함수는 이미 VBA에 해당하는 함수가 내장되어 있는 함수들입니다.

다음은 Excel 워크시트 함수인 RoundUp의 구문입니다:

ROUNDUP(숫자, 자리수) where:

  • 숫자- 올림하려는 숫자입니다.
  • 자리수- 숫자를 올림할 소수점 자리수입니다.

 

이제 VBA 코드에서 워크시트 함수인 RoundUp을 사용하는 방법을 확인할 수 있도록 예제를 살펴 보겠습니다:

Sub RoundUp()

Dim unitcount As Double

Dim roundupUnitcount As Double

unitcount = 7.075711

roundupUnitcount = Application.WorksheetFunction.RoundUp(unitcount, 4)

MsgBox "값은 " & roundupUnitcount

End Sub

결과는 아래와 같습니다:

가장 가까운 정수로 올림하기

소수점 이하 자릿수로 0을 지정하여 가장 가까운 정수로 올림할 수 있습니다:

Sub RoundUpWhole()

MsgBox Application.WorksheetFunction.RoundUp(7.1, 0)

End Sub

결과는 아래와 같습니다:

Rounding Up to the Nearest Integer using VBA

RoundUp 함수 사용 결과

함수에 사용된 숫자 자리수 결과
7.075711 0 8
7.075711 1 7.1
7.075711 2 7.08
7.075711 3 7.076
7.075711 -1 10
7.075711 -2 100
7.075711 -3 1000

VBA RoundDown 함수

VBA를 사용하여 숫자를 내림하고 싶다고 가정해 봅시다. 내장된 VBA 반내림 함수는 없으며, 대신 VBA 코드에서 Excel RoundDown 워크시트 함수를 호출해야 합니다.

Excel 워크시트 RoundDown 함수의 구문은 다음과 같습니다:

ROUNDDOWN(숫자, 자리수) where:

• 숫자 – 내림할 숫자입니다.
• 자리수 – 숫자를 반올림할 소수점 자릿수입니다.

 

이제 VBA 코드에서 RoundDown 워크시트 함수를 사용하는 방법을 확인할 수 있도록 예제를 살펴보겠습니다:

Sub RoundDown()

Dim unitcount As Double

Dim rounddownUnitcount As Double

unitcount = 5.225193

rounddownUnitcount = Application.WorksheetFunction.RoundDown(unitcount, 4)

MsgBox "값은 " & rounddownUnitcount

End Sub

결과는 아래와 같습니다:

가장 가까운 정수로 내림하기

소수점 이하 자릿수로 0을 지정하여 가장 가까운 정수로 내림할 수 있습니다:

Sub RoundDownWhole()

MsgBox Application.WorksheetFunction.RoundDown(7.8, 0)

End Sub

결과는 아래와 같습니다:

VBA RoundDown to Nearest Integer

RoundDown 함수 사용 결과

함수에 사용된 숫자 자리수 결과
5.225193 0 5
5.225193 1 5.2
5.225193 2 5.22
5.225193 3 5.225
5.225193 -1 0
5.225193 -2 0
5.225193 -3 0

기타 VBA Rounding 함수

VBA Ceiling – 지정한 배수로 올림

VBA에는 Ceiling.Math 함수에 해당하는 함수가 없으므로 숫자를 가장 가까운 정수 또는 가장 가까운 지정 배수로 반올림하려는 경우 VBA 코드에서 Excel의 Ceiling.Math 워크시트 함수를 호출할 수 있습니다.

Excel 워크시트 Ceiling.Math 함수의 구문은 다음과 같습니다:

CEILING.MATH(숫자, 지정배수, 모드) where:

  • 숫자 – 올림하려는 숫자입니다.
  • 지정배수 (선택사항) – 반올림 할때 목표값으로 사용할 배수입니다
  • 모드 (선택사항) – 음수를 0과 가까운 쪽으로 반올림할지  0에서 멀어지게 반올림할지 선택합니다.

 

이제 VBA 코드에서 Ceiling.Math 워크시트 함수를 사용하는 방법을 확인할 수 있도록 예제를 살펴보겠습니다:

Sub RoundUpToSignificance()

Dim unitcount As Double

Dim ceilingmathUnitcount As Double

unitcount = 4.1221 

ceilingmathUnitcount = Application.WorksheetFunction.Ceiling_Math(unitcount, 5)

MsgBox "결과는 " & ceilingmathUnitcount

End Sub

결과는 다음과 같습니다:

VBA Ceiling.Math 사용 예제

함수에 사용된 숫자 배수 모드 결과
4.1221 5
4.1221 3 6
4.1221 50 50
-4.1221 3 -3
-4.1221 3 -1 -6

VBA Floor – 지정된 배수로 내림

VBA에는 Floor.Math 함수에 해당하는 함수도 없습니다. 하지만 숫자를 가장 가까운 정수 또는 가장 가까운 지정 배수로 반내림하려는 경우 VBA에서 Excel의 Floor.Math 워크시트 함수를 호출할 수 있습니다.

Excel 워크시트 Floor.Math 함수의 구문은 다음과 같습니다:

FLOOR.MATH(숫자, 배수, 모드) where:
• 숫자- 내림 하려는 숫자입니다.
• 배수 (선택사항) – 숫자를 내림할때 목표값으로 사용할 배수입니다.
• 모드(선택사항) – C음수를 0에 가까운 쪽으로 내림 할지 0에서 멀어지게 내림할지 선택합니다.

 

이제 예제를 통해 VBA 코드에서 Floor.Math 워크시트 함수를 사용하는 방법을 살펴보겠습니다:

Sub RoundDownToSignificance()

Dim unitcount As Double
Dim floormathUnitcount As Double

unitcount = 4.55555559
floormathUnitcount = Application.WorksheetFunction.Floor_Math(unitcount, 2)

MsgBox "값은 " & floormathUnitcount

End Sub

결과는 아래와 같습니다:

VBA Floor.Math 사용 예제

함수에 사용된 숫자 배수 모드 결과
4.55555559 4
4.55555559 3 3
4.55555559 50 0
-4.55555559 3 -6
-4.55555559 3 -1 -3
vba-free-addin

VBA 코드 예시 추가 기능

본 웹사이트에 있는 모든 코드 예시에 쉽게 접근해보세요.

메뉴로 이동하여 클릭만 하면 코드는 모듈에 바로 입력됩니다. .xlam 추가 기능.

(설치가 필요 없습니다!)

무료 다운로드

VBA 코드 예시로 돌아가기