VBA Function

Format 함수

노만e 2025. 3. 16. 17:35

엑셀 VBA에서 Format 함수는 숫자, 날짜, 텍스트 등의 데이터를 특정 형식으로 변환하는 함수입니다.

즉, 숫자를 통화 형식으로 표시하거나, 날짜 형식을 지정하는 등의 용도로 사용됩니다.


1. 기본 문법

Format(표현식, [서식])
  • 표현식 → 변환할 값 (숫자, 날짜, 문자열 등)
  • [서식] → 적용할 형식 지정 (선택 사항)

📌 형식을 지정하지 않으면 문자열로 변환됨

📌 숫자, 날짜, 통화, 사용자 정의 형식 등 다양한 형식을 적용 가능


2. 숫자 형식 변환

Sub 숫자_형식()
Dim 결과 As String
결과 = Format(12345.678, "#,##0.00")
MsgBox 결과
End Sub

📌 출력: "12,345.68"

📌 천 단위 구분 기호(,) 추가 및 소수점 두 자리까지 표시


3. 날짜 형식 변환

Sub 날짜_형식()
Dim 결과 As String
결과 = Format(Date, "yyyy년 mm월 dd일")
MsgBox 결과
End Sub

📌 출력 (예시): "2025년 03월 08일"

📌 현재 날짜를 "2025년 03월 08일" 형식으로 변환


4. 통화 형식 변환

Sub 통화_형식()
Dim 결과 As String
결과 = Format(5000, "₩#,##0")
MsgBox 결과
End Sub

📌 출력: "₩5,000"

📌 한국 원화(₩)를 포함한 통화 형식 적용


5. 시간 형식 변환

Sub 시간_형식()
Dim 결과 As String
결과 = Format(Now, "hh:mm:ss AM/PM")
MsgBox 결과
End Sub

📌 출력 (예시): "10:30:45 PM"

📌 현재 시간을 12시간제 형식(AM/PM 포함)으로 변환


6. 백분율(%) 형식 변환

Sub 백분율_형식()
Dim 결과 As String
결과 = Format(0.875, "0%")
MsgBox 결과
End Sub

📌 출력: "88%"

📌 0.875를 백분율 형식으로 변환 (자동 반올림)


7. 정수 앞에 0 채우기 (자리수 맞추기)

Sub 자리수_채우기()
Dim 결과 As String
결과 = Format(25, "00000")
MsgBox 결과
End Sub

📌 출력: "00025"

📌 5자리 숫자로 만들고, 부족한 부분은 0으로 채움


8. 사용자 정의 숫자 형식

Sub 사용자정의_숫자()
Dim 결과 As String
결과 = Format(1234.567, "#,##0.00;(#,##0.00)")
MsgBox 결과
End Sub

📌 출력: "1,234.57"

📌 양수는 1,234.57, 음수는 "(1,234.57)"로 표시


9. 전화번호 형식 변환

Sub 전화번호_형식()
Dim 결과 As String
결과 = Format(1023456789, "000-0000-0000")
MsgBox 결과
End Sub

📌 출력: "010-2345-6789"

📌 전화번호를 000-0000-0000 형식으로 변환


10. 날짜 및 시간 조합

Sub 날짜시간_형식()
Dim 결과 As String
결과 = Format(Now, "yyyy-mm-dd hh:mm:ss")
MsgBox 결과
End Sub

📌 출력 (예시): "2025-03-08 15:45:30"

📌 날짜와 시간을 조합하여 출력


11. 문자열 길이 맞추기 (오른쪽 정렬)

Sub 오른쪽정렬_문자열()
Dim 결과 As String
결과 = Format("ABC", "@@@@@")
MsgBox 결과
End Sub

📌 출력: " ABC"

📌 5자리로 맞추고, 왼쪽에 공백 추가


12. 셀 값을 특정 형식으로 변환하여 출력

Sub 셀값_형식변환()
Dim 결과 As String
결과 = Format(Range("A1").Value, "#,##0.00")
MsgBox "A1의 값: " & 결과
End Sub

📌 A1 셀 값을 #,##0.00 형식으로 변환하여 출력


13. 셀 범위 내 모든 값 형식 변환

Sub 범위_형식변환()
Dim cell As Range
For Each cell In Range("B1:B10")
cell.Value = Format(cell.Value, "#,##0")
Next cell
End Sub

📌 B1:B10 범위의 모든 숫자를 천 단위 구분 기호가 포함된 형식으로 변환


14. 파일 크기를 KB/MB 단위로 변환

Sub 파일크기_변환()
Dim 크기 As Double
크기 = 1048576 ' 1MB (1024*1024)
MsgBox "파일 크기: " & Format(크기 / 1024, "#,##0 KB") & vbNewLine & _
"파일 크기: " & Format(크기 / 1024 / 1024, "#,##0.0 MB")
End Sub

📌 출력:

파일 크기: 1,024 KB 파일 크기: 1.0 MB

📌 파일 크기를 KB, MB 단위로 변환하여 표시


📝 정리

기능
VBA 코드
숫자 천 단위 구분 기호 추가
Format(12345.678, "#,##0.00") → "12,345.68"
날짜 변환 (한글 포함)
Format(Date, "yyyy년 mm월 dd일")
시간 변환 (AM/PM 포함)
Format(Now, "hh:mm:ss AM/PM")
통화 형식 ()
Format(5000, "₩#,##0") → "₩5,000"
백분율 변환
Format(0.875, "0%") → "88%"
전화번호 형식
Format(1023456789, "000-0000-0000")
자리수 맞추기 (0 채우기)
Format(25, "00000") → "00025"
파일 크기 변환 (KB, MB)
Format(크기 / 1024, "#,##0 KB")
셀 값 변환
Format(Range("A1").Value, "#,##0.00")

🔥 VBA의 Format 함수는 숫자, 날짜, 시간, 텍스트 등 다양한 데이터를 원하는 형식으로 변환할 때 매우 유용합니다! 🚀