이전 글에서 Val 함수와 Str 함수에 대해 알아보았습니다. 이번엔 시간과 날짜를 반환하는 함수에 대해 알아보겠습니다.
1. 시간과 날짜 함수
1.1 Date 함수
Date 함수는 엑셀 함수에서 Today와 동일한 기능을 하는 함수로 현재 날짜를 반환합니다.
1.2 Now 함수
Now 함수는 현재 날짜와 시간을 반환하는 함수입니다. 이는 엑셀 함수에서도 동일한 이름으로 제공됩니다.
1.3 Time 함수
Time 함수는 현재 시간을 반환하는 함수입니다.
1.4 시간과 날짜 함수 사용
엑셀에서 VBE 창을 열고 Module을 생성하고 아래와 같이 코딩하여 Date, Now, Time 함수 실행 결과를 확인해 보겠습니다.
Public Sub 날짜시간함수()
Range("B2").Value = Date
Range("B3").Value = Now
Range("B4").Value = Time
End Sub
2. DateSerial 함수
엑셀 셀에 날짜를 입력할 때는 연도-월-일 형식으로 입력하여야 제대로 날짜가 출력됩니다. 날짜 입력 형식이 잘못 쓰이면 날짜가 제대로 출력되지 않게 됩니다. 이와 같이 날짜를 제대로 된 형식으로 입력할 때 DateSerial 함수를 이용합니다.
사용방법은 다음과 같습니다.
DateSerial ( 연도, 월, 일 )
3. DateValue 함수
DateValue 함수 역시 날짜를 입력할 때 날짜 형식에 맞춰 입력할 때 사용하는 함수입니다.
사용방법은 다음과 같습니다.
DateValue ( "연도-월-일" )
4. 예제로 DateSerial 함수와 DateValue 함수 확인하기
엑셀에서 VBE 창을 열고 Module을 생성하고 다음과 같이 코딩합니다.
Public Sub 날짜형식()
Range("B2").Value = DateSerial(2021, 10, 5)
Range("B3").Value = DateValue("2021-10-5")
End Sub
실행하시면 날짜가 형식에 맞게 입력되는 것을 보실 수 있습니다.
위 코딩에서 DateValue("2021-10-5")를 DateValue(20211005)로 바꿔 실행하시면 에러가 발생합니다. 날짜 형식에 맞춰 입력하지 않았기 때문입니다.
DateSerial 함수와 DateValue 함수의 차이점이 있습니다.
2021년 2월은 28일까지 있었습니다. 그럼 다음과 같이 Module 창에 코딩하고 실행해 봅니다.
Public Sub 날짜입력()
Range("B2").Value = DateSerial(2021, 2, 29)
Range("B3").Value = DateValue("2021-2-29")
End Sub
실행해 보시면 DateSerial(2021, 2, 29)은 B2 셀에 2021-03-01라고 입력되는 것을 보실 수 있습니다. 하지만, DateValue("2021-2-29")는 에러가 발생합니다.
즉, DateSerial 함수는 그 달의 마지막 날짜를 인식하여 주어진 날짜가 맞지 않을 경우 그 차이만큼을 감안하여 날짜를 출력해 주지만, DateValue 함수는 그 달의 마지막 날짜와 맞지 않으면 에러가 발생하게 됩니다.
'엑셀 > VBA' 카테고리의 다른 글
VBA 내장 함수 - Split 함수 (0) | 2021.10.11 |
---|---|
VBA 내장 함수 - Array 함수 (0) | 2021.10.09 |
VBA 내장 함수 - Val 함수, Str 함수 (0) | 2021.10.04 |
VBA 내장 함수 - Replace 함수 (0) | 2021.10.04 |
VBA 내장 함수 - Is 함수, Len 함수 (0) | 2021.10.04 |