[ 들어가며 ]
Format 함수란
VBA에서 데이터를 특정 형식으로 변환해 주는 함수입니다.
대표적인 것이 날짜의 형식이 있을 수 있고
숫자나 문자열 등의 형식 변환이 가능합니다.
특정 날짜에서
연도만 표시할 수도 있고
소수점 두 자리 이상의 숫자를
소수점 두자리까지만 표시하게 할 수도 있습니다.
[ Format 함수의 기본 구조 ]
Format 함수의 기본 구조는 다음과 같습니다.
Format(expression, [format])
expression은 형식을 지정할 데이터입니다.
날짜, 숫자 또는 문자열 등이 해당이 됩니다.
format은 데이터를 변환할 형식의 문자열입니다.
오늘은 먼저 숫자 형식을 지정하는 방법에 대해 먼저 작성해 보겠습니다.
[ 기본 정수 형식 ]
Sub Example_Format()
MsgBox Format(1234.567, "0")
MsgBox Format(1234.467, "#")
End Sub
위 코드에서 보시는 바와 같이
이 경우에는 0 또는 # 을 사용합니다.
실행결과는
MsgBox Format(1234.567, "0")
위 코드의 경우 1235
MsgBox Format(1234.467, "#")
위 코드의 경우 1234
가 결과로 나타납니다.
자동으로 반올림이 됩니다.
[ 소수점 자리수 지정 ]
소수점 이하 자리수를 지정하여 표시하는 방법입니다.
Sub Example_Format()
MsgBox Format(1234.5, "0.00")
MsgBox Format(1234.567, "#.##")
End Sub
위 코드의 실행결과는 각각
1234.50 과 1234.57 입니다.
소수점의 자릿수가 지정된 자릿수보다 적은 경우 0으로 채우고
지정된 자리수보다 많은 경우 반올림을 하여 값을 보여줍니다.
[ 천 단위 구분자 사용 ]
보통 숫자를 표현할 때 읽기 쉽게 하기 위해서
1,000 단위마다 쉼표(,)를 사용합니다.
Sub Example_Format()
MsgBox Format(1234567.89, "#,###")
MsgBox Format(1234567.89, "#,##0.00")
End Sub
위 코드의 실행 결과는
각각 1,234,568과 1,234,567.89입니다.
보시다시피 소수점 자릿수 지정과 같이 사용이 가능합니다.
[ 백분율 형식 사용 ]
백분율 형식으로도 표시가 가능합니다.
Sub Example_Format()
MsgBox Format(0.456, "0%")
MsgBox Format(0.456, "0.00%")
End Sub
위 코드를 실행하면
각각 46% 와 45.60% 로 결과가 나타납니다.
[ 통화 형식 사용 ]
맨 앞에 $ 표시나 ₩ 같은 통화 표시도 가능합니다.
Sub Example_Format()
MsgBox Format(1234, "$#,###")
MsgBox Format(1234, "₩#,###")
End Sub
위 코드의 결과는
$1,234 와 ₩1,234 가 됩니다.
₩ 표시가 제대로 되지 않는 경우가 있는데,
이 경우 아래와 같이 유니코드 값을 사용하면
정상적으로 표시되게 할 수 있습니다.
Sub Example_Format()
MsgBox Format(1234, "$#,###")
wonSymbol = ChrW(&H20A9)
MsgBox Format(1234, wonSymbol & "#,###")
End Sub
[ 지수 형식 사용 ]
지수 형식으로 사용하는 방법입니다.
Sub Example_Format()
MsgBox Format(123456789, "0.00E+00")
End Sub
위 코드의 결과는 1.23E+08 입니다.
[ 조건부로 표시하기 ]
숫자가 양수, 음수 또는 0 인지에 따라 결과를 다르게 표시할 수도 있습니다.
Sub Example_Format()
MsgBox Format(1234, "+0;-0;0")
MsgBox Format(-1234, "+0;-0;0")
MsgBox Format(0, "+0;-0;0")
End Sub
위 코드의 실행결과는 각각
+1234 / -1234 / 0
입니다.
천 단위 구분기호와 같이 사용할 수도 있습니다.
Sub Example_Format()
MsgBox Format(1234, "+#,###;-#,###;0")
MsgBox Format(-1234, "+#,###;-#,###;0")
MsgBox Format(0, "+#,###;-#,###;0")
End Sub
아래와 같이 텍스트로 출력도 가능합니다.
Sub Example_Format()
MsgBox Format(1234, "양수;음수;영")
MsgBox Format(-1234, "양수;음수;영")
MsgBox Format(0, "양수;음수;영")
End Sub
[ 텍스트도 같이 출력하기 ]
1,234원, 1,234달러와 같이
임의의 텍스트와 같이 출력할 수도 있습니다.
Sub Example_Format()
MsgBox Format(1234, "#,###원")
MsgBox Format(1234, "#,###달러")
End Sub
위 코드의 출력 결과는 1,234원, 1,234달러 입니다.
[ 지정된 자릿수만큼 0으로 채우기 ]
000123, 001234 이런 형식으로 지정된 자릿수만큼
0을 채우기도 가능합니다.
Sub Example_Format()
MsgBox Format(42, "00000")
MsgBox Format(142, "00000")
MsgBox Format(1242, "00000")
MsgBox Format(12242, "00000")
MsgBox Format(111111142, "00000")
End Sub
위 코드의 출력 결과는
00042 / 00142 / 01242 / 12242 / 111111142
가 됩니다.
마지막과 같이 자릿수를 초과하면 해당 숫자가 그냥 표시됩니다.
여기를 방문하시면 더 많은 엑셀 관련 자료를 확인할 수 있습니다.
'EXCEL VBA' 카테고리의 다른 글
엑셀 VBA 엑셀 파일 실행 시 오늘 날짜를 시트 이름으로하는 시트 자동 생성하기 (0) | 2024.08.07 |
---|---|
엑셀 VBA 형식을 지정하는 Format 함수(날짜 및 시간 형식 지정) (0) | 2024.08.06 |
엑셀 VBA 엑셀 파일을 열 때마다 첫 번째 시트가 선택되게 만들기 (0) | 2024.08.05 |
엑셀 VBA Cells 속성을 사용하여 행 번호와 열 번호로 특정 셀 선택, 참조 하기 (0) | 2024.08.05 |
엑셀 VBA Range()로 하나의 셀 또는 범위 선택하는 여러가지 방법 (0) | 2024.08.04 |