티스토리 뷰


안녕하세요. 구스입니다.


오늘은 오랜만에 엑셀 VBA 매크로 프로그래밍 팁을 알려드릴까 해요. 너무 엑셀부분을 안 했더니 기존에 생각했던 것과는 다르게 다른 분야의 내용만 올라와서 본질로 돌아가보고자 합니다.

오늘 알아볼 내용은 엑셀 VBA 프로그래밍에서 오늘 날짜(언제든지 가능)과 현재 시간을 가져오는 방법에 대해서 논할 까 합니다.


보고서를 쓰거나 할 때 작성 시간에 대해서 넣어야 하는 경우가 많자 나요. 생각보다 유용한 함수들 입니다.

VBA에서 오늘 날짜와, 현재 시간을 반환하는 함수는Date 함수이고, 현재 시간을 가져오는 함수는 Time 함수입니다. 오늘 날짜와 현재 시간을 받아오는 함수는 Now 함수가 있습니다.

 

  • Date : 오늘 날짜를 반환하는 함수
  • Time : 현재 시간을 반환하는 함수
  • Now: 오늘 날짜와 현재 시간을 반환하는 함수

 

그럼 VBA에서 한번 실행을 해 볼까요. 먼저 직접 실행창에서 관련 함수를 호출 해 보았습니다.

참고 : 직접 실행창에서 함수를 실행할 때는 앞에 ?를 무조건 붙이셔야 합니다.
다들 아시죠?

 

 

위의 그림처럼 DATE, TIME, NOW 함수가 모두 제대로 실행이 됩니다.
센스가 있으신 분이라면 이 3가지 함수가 대소문자를 구별하지 않는다는 것도 파악할 수 있을 겁니다.

 

Question? 현재 시간에서 시간과 분만 가져오려고 한다면 어떻게 해야 할까요?

이러한 경우에는 바로 바로 Format 함수를 써야 합니다.
시간과 분만 나오게 하자면 아래와 같이 Format(NOW, "H:M")으로 호출을 하면 된답니다.

 

 

Format 함수는 다른 글에서 좀더 상세히 설명을 하고요. 예를 통해서 사용방법을 먼저 익혀보시죠.
아래는 MSDN에 나와 있는 예제입니다. 다양한 예가 있으니 관련된 내용 보고 나서 그대로 쓰시면 되요.

 

Dim MyTime, MyDate, MyStr

MyTime = #17:04:23#

MyDate = #January 27, 1993#

 

' Returns current system time in the system-defined long time format.

MyStr = Format(Time, "Long Time")

 

' Returns current system date in the system-defined long date format.

MyStr = Format(Date, "Long Date")

 

MyStr = Format(MyTime, "h:m:s") ' Returns "17:4:23".

MyStr = Format(MyTime, "hh:mm:ss AMPM") ' Returns "05:04:23 PM".

MyStr = Format(MyDate, "dddd, mmm d yyyy") ' Returns "Wednesday,

' Jan 27 1993".

' If format is not supplied, a string is returned.

MyStr = Format(23) ' Returns "23".

 

' User-defined formats.

MyStr = Format(5459.4, "##,##0.00") ' Returns "5,459.40".

MyStr = Format(334.9, "###0.00") ' Returns "334.90".

MyStr = Format(5, "0.00%") ' Returns "500.00%".

MyStr = Format("HELLO", "<") ' Returns "hello".

MyStr = Format("This is it", ">") ' Returns "THIS IS IT".

 

자 그럼 코드를 한번 짜보도록 합시다.
코드는 아래와 같습니다. 

Sub GetDateAndTime()

Range("A2") = "오늘 날짜"
Range("A3") = "현재 시간"
Range("A4") = "오늘 날짜와 현재 시간"
Range("A5") = "오늘 날짜 중 월과 일만"
    

Range("B2") = Date ' 오늘날짜 가져오기
Range("B3") = Time ' 현재 시간 가져오기
Range("B4") = Now ' 오늘 날짜와 현재 시간 가져오기
Range("B5") = Format(Date, "m월d일") ' 오늘날짜에서 월,일만 가져오기

End Sub


위의 코드를 엑셀 VBA에 아래와 같이 적용해봅니다.

 

 

그리고 실행을 시킵니다.

 

 

잘 되는 것을 볼 수가 있네요.
생각보다 어렵지 않습니다. 그죠?

이 글에서는 엑셀 VBA 매크로 프로그래밍에서 오늘 날짜와 현재 시간을 가져오는 방법에 대해서 알아보았습니다.
그럼 이만 줄이겠습니다.

 

이 글이 도움이 되셨으면 아래의 하트를 눌러주세요.

댓글