[ 들어가며 ]
앞서서 Format 함수의 숫자 형식 지정에 대해 알아 보았습니다.
VBA의 Format 함수는 날짜나 시간을 원하는 형식으로 변경할 수 있습니다.
이 함수는 다양한 날짜 형식을 문자열로 지원하여,
원하는 형식으로 날짜를 표시할 수 있습니다.
먼저 사용 예시를 알아보기 전에
VBA에서 사용되는
Date, Time, Now
에 대해 간단히 알아보겠습니다.
Date는 현재 시스템의 날짜를 반환합니다.
Time은 현재 시스템의 시간을 반환합니다.
Now는 현재 시스템의 시간과 날짜를 모두 반환합니다.
앞으로 예시에서는 날짜와 시간을 모두 표시하는 경우를 제외하고date
와 time
을 나누어 사용할 것입니다.
format 함수
의 사용과 관련한 것으로 한정하면date
와 time
대신 now
하나만 사용해도 큰 문제는 없을 것으로 보이나,
그 외의 어떤 상황에서date
와 time
을 구분하지 않고now
하나만 사용한다면
문제가 생길 수 있는 경우도 있습니다.
예를 들어, 날짜만 비교하거나 시간만 조작해야 하는 경우에는
now를 사용하면 불필요한 정보가 포함될 수 있습니다.
이 점은 참고하시기 바랍니다.
[ 날짜 및 시간 형식 지정 방법 ]
먼저 기본적으로 Date
, Time
, Now
가 어떤 형식으로 표시되는 지 알아보겠습니다.
Sub Example_Format()
MsgBox Format(Date)
MsgBox Format(Time)
MsgBox Format(Now)
End Sub
위 코드의 실행결과는 각각 다음과 같습니다.2024-08-06(화)
오후 11:04:26
2024-08-06(화) 오후 11:04:26
이제 날짜를 여러가지 형식으로 표시해 보겠습니다.
Sub Example_Format()
MsgBox Format(Date, "yyyy-mm-dd")
MsgBox Format(Date, "yyyy년 mm월 dd일")
MsgBox Format(Date, "yyyymmdd")
End Sub
위 코드를 실행하면
아래와 같이 결과가 차례로 출력이 됩니다.2024-08-06
2024년 08월 06일
20240806
연도만 추출하고 싶다면 yyyy
를
월만 추출하고 싶다면 mm
을
날짜만 추출하고 싶다면 dd
를 사용하면 됩니다.
dddd
를 사용하면 요일이 표시가 되는데
지금 제 시스템에서는 영어로만 표시가 되서
원래 영어만 지원을 하는지
아니면 시스템 설정이 잘못되어 있는 것인지
확인이 어렵습니다.
dddd
는 요일이 나타난다는 것을 우선 참고하세요.
다음은 시간을 12시간제 또는 24시간제로 표시하는 방법입니다.
Sub Example_Format()
MsgBox Format(Time, "hh:nn:ss")
MsgBox Format(Time, "hh:nn:ss AM/PM")
End Sub
이렇게 하면 다음과 같이 출력이 됩니다.23:23:41
11:23:41 PM
인자의 마지막에AM/PM
을 추가해주면 12시간제로 표시가 되고
생략하면 24시간제로 표시가 됩니다.
날짜와 마찬가지로
시간만 표시하고 싶다면 hh
분만 표시하고 싶다면 mm
초만 표시하고 싶다면 ss
를 사용하면 됩니다.
[ 마치며 ]
이외에도 조금만 응용을 한다면
사용자가 원하는 형태로
날짜와 시간을 표시할 수 있습니다.
여기를 방문하시면 더 많은 엑셀 관련 자료를 확인할 수 있습니다.
'EXCEL VBA' 카테고리의 다른 글
엑셀 VBA의 'CurrentRegion'과 'UsedRange' 이해하기 (0) | 2024.08.08 |
---|---|
엑셀 VBA 엑셀 파일 실행 시 오늘 날짜를 시트 이름으로하는 시트 자동 생성하기 (0) | 2024.08.07 |
엑셀 VBA 형식을 지정하는 Format 함수(숫자 형식 지정) (0) | 2024.08.06 |
엑셀 VBA 엑셀 파일을 열 때마다 첫 번째 시트가 선택되게 만들기 (0) | 2024.08.05 |
엑셀 VBA Cells 속성을 사용하여 행 번호와 열 번호로 특정 셀 선택, 참조 하기 (0) | 2024.08.05 |