VBA에서 “FormatCurrency” 함수는 숫자를 통화 형식으로 변환하는데 사용합니다. 함수는 통화 기호, 소수점 이하 자릿수, 음수 표현 방식 등을 자동으로 처리해주기 때문에, 통화 값을 다룰 때 매우 유용합니다. “FormatCurrency” 함수는 4개의 선택적 인수를 활용해서 통화 형식의 표현을 더 세밀하게 제어할 수 있습니다.
◎ 1. 구문 |
“FormatCurrency” 함수의 구문은 다음과 같습니다.
FormatCurrency(Expression, [NumDigitsAfterDecimal], [IncludeLeadingDigit], [UseParensForNegativeNumbers], [GroupDigits])
l “Expression”: 통화 형식으로 변환할 숫자입니다.
l “NumDigitsAfterDecimal”(선택적): 소수점 이하 자릿수를 지정합니다. 기본값은 2입니다.
l “IncludeLeadingDigit”(선택적): 0보다 큰 값이고 1보다 작은 숫자를 표시할 때 선행 0을 포함할지 여부를 지정합니다. 기본값은 True입니다.
l “UseParensForNegativeNumbers”(선택적): 음수를 괄호로 표시할지 여부를 지정합니다. 기본값은 False입니다.
l “GroupDigits”(선택적): 숫자를 천 단위로 그룹화할지 여부를 지정합니다. 기본값은 True입니다.
◎ 2. 기본 통화 형식 변환 |
예제에서는 1234.5678이라는 숫자를 “FormatCurrency” 함수를 이용해 통화 형식으로 변환합니다. 실행 결과, 메시지 박스에는 "\1,235"이 출력됩니다.
Sub FormatCurrencyExample()
Dim value As Double
value = 1234.5678
MsgBox FormatCurrency(value)
End Sub
◎ 3. 소수점 이하 자릿수 지정 예제 |
예제에서는 NumDigitsAfterDecimal 인수를 이용해서 소수점 자리수를 제한합니다. 1234.5678이라는 숫자를 소수점 이하 3자리까지 표시하는 통화 형식으로 변환합니다. 실행 결과, 메시지 박스에는 "\1,234.568"이 출력됩니다. 이렇게 “FormatCurrency” 함수를 사용하면 다양한 통화 형식의 표현을 쉽게 처리할 수 있습니다.
Sub FormatCurrencyExample()
Dim value As Double
value = 1234.5678
MsgBox FormatCurrency(value, 3)
End Sub
◎ 4. 선행하는 숫자의 0 을 제외하고 표현하기 |
예제에서는 0.5678이라는 숫자를 “FormatCurrency” 함수의 “IncludeLeadingDigit” 인수를 이용해 통화 형식으로 변환하되, 선행 0을 포함하지 않도록 지정합니다. 실행 결과, 메시지 박스에는 "\.57"이 출력됩니다. “IncludeLeadingDigit” 값이 False 이면 0 을 제외합니다.
Sub FormatCurrencyExample()
Dim value As Double
value = 0.5678
MsgBox FormatCurrency(value, 2, False)
End Sub
◎ 5. 음수를 괄호로 표시할 것인지 결정 |
“UseParensForNegativeNumbers” 인수를 사용해서 음수를 괄호로 표시할 것인지 정할 수 있습니다. 예제에서는 -1234.5678이라는 숫자를 “FormatCurrency” 함수를 이용해 통화 형식으로 변환하되, 음수를 괄호로 표시하도록 지정합니다. 실행 결과, 메시지 박스에는 "(\1,235)"이 출력합니다.
Sub FormatCurrencyExample()
Dim value As Double
value = -1234.5678
MsgBox FormatCurrency(value, -1, -1, True)
End Sub
◎ 6. 천 단위 쉼표 표시 여부 |
예제에서는 1234567.89라는 숫자를 “FormatCurrency” 함수의 “GroupDigits” 인수를 사용해서 통화 형식으로 변환하되, 천 단위로 그룹화하지 않도록 지정합니다. 실행 결과, 메시지 박스에는 "\1234567"이 출력됩니다. 천 단위로 쉼표를 표시하고 싶다면 True 를 입력합니다.
Sub FormatCurrencyExample()
Dim value As Double
value = 1234567.89
MsgBox FormatCurrency(value, -1, -1, -1, False)
End Sub
'엑셀(Excel) > VBA' 카테고리의 다른 글
엑셀 VBA 연도, 월, 일로 날짜를 생성하는 함수 DateSerial (0) | 2024.05.09 |
---|---|
엑셀(VBA) Hour, Minute, Second 시간에서 시, 분, 초 추출 (0) | 2024.05.04 |
엑셀(VBA) Year, Month, Day 함수 연도, 월, 일 추출 (0) | 2024.05.04 |
엑셀 VBA 날짜 간 차이 함수 DateDiff 사용하기 (1) | 2024.05.02 |
엑셀 VBA 함수 Join 배열 합치기 (1) | 2024.05.01 |
엑셀 VBA 숫자를 문자열로 바꾸는 여러가지 방법 (1) | 2024.04.27 |
엑셀 VBA 문자열 분할 함수 Split 사용하기 (1) | 2024.04.21 |
엑셀 VBA 워크시트, 셀 선택되었을 때 실행되는 이벤트 함수 구현하기 (1) | 2024.04.13 |