VBA 날짜 및 시간과 관련된 함수들

Written by

Editorial Team

Reviewed by

Steve Rynearson

Translated by

Younjung Kim

Last updated on 4월 28, 2023

튜토리얼에서는 VBA 날짜와 시간에 대한 함수들을 알아봅니다.

VBA Date 함수

Date 함수를 사용하여 현재 날짜를 반환할 수 있습니다.

Date 함수의 구문은 Date()입니다. 인수가 없습니다.

다음 코드는 날짜 함수를 사용하는 방법을 보여줍니다:

Sub UsingTheDateFunction()

Dim theDate As Date
theDate = Date()

Debug.Print theDate

End Sub

직접 실행 창에 표시되는 결과는 다음과 같습니다:

VBA Now 함수

Now 함수를 사용하여 현재 날짜와 시간을 반환할 수 있습니다.

Now 함수의 구문은 Now()입니다. 인수가 없습니다.

다음 코드는 Now 함수를 사용하는 방법을 보여줍니다:

Sub UsingTheNowFunction()

Dim theDate As Date
theDate = Now()

Debug.Print theDate

End Sub

결과는 다음과 같습니다:

VBA Time 함수

Time 함수를 사용하여 현재 시간을 반환할 수 있습니다.

시간 함수의 구문은 Time()입니다. 인수가 없습니다.

다음 코드는 Time 함수를 사용하는 방법을 보여줍니다:

Sub UsingTheTimeFunction()

Dim theTime As Date
theTime = Time()

Debug.Print theTime

End Sub

결과는 다음과 같습니다:

VBA DateAdd 함수

DateAdd 함수를 사용하여 날짜 또는 시간에 날짜/시간 간격을 더할 수 있으며, 이 함수는 결과값으로 날짜 또는 시간을 반환합니다.

DateAdd 함수의 구문은 다음과 같습니다:

DateAdd(Interval, Number, Date) :

  • Interval – 간격의 유형을 지정하는 문자열입니다. 다음 값 중 하나 일 수 있습니다:

“d” – 일
“ww” – 주
“w” – 요일
“m” – 월
“q” – 분기
“yyyy” – 연도
“y” – 일
“h” – 시간
“n” – 분
“s” – 초

  • Number – 기준 날짜 또는 기준 시간에 추가할 수 입니다.
  • Date – 기준 날짜 또는 기준 시간.

참고: 코드에서 날짜를 사용할 때는 # 또는 따옴표로 묶어야 합니다.

다음 코드는 DateAdd 함수를 사용하는 방법을 보여줍니다:

Sub UsingTheDateAddFunction()

Dim laterDate As Date

laterDate = DateAdd("m", 10, "11/12/2019")

Debug.Print laterDate

End Sub

결과는 다음과 같습니다:

VBA DateDiff 함수

DateDiff 함수를 사용하여 지정된 시간 간격을 기준으로 두 날짜의 차이를 구할 수 있습니다.

DateDiff 함수의 구문은 다음과 같습니다:

DateDiff(Interval, Date1, Date2, [Firstdayofweek], [Firstweekofyear]):

  • Interval – 간격 유형을 지정하는 문자열입니다. 다음 값 중 하나 일 수 있습니다:

“d” – 일
“ww” – 주
“w” – 일
“m” – 월
“q” – 분기
“yyyy” – 연도
“y” – 일
“h” – 시간
“n” – 분
“s” – 초

  • Date1 – 두 날짜 중 이른 날짜
  • Date2 – 두 날짜 중 늦은 날짜
  • Firstdayofweek (선택사항) – 함수가 주의 첫 번째 날로 사용할 요일을 지정하는 상수입니다. 비어있을 경우 일요일이 주의 첫번째 요일로 사용됩니다. Firstdayofweek는 다음 값 중 하나를 사용할 수 있습니다:

-vbSunday – 일요일을 주의 첫 번째 날로 사용합니다.
-vbMonday – 월요일을 주의 첫 번째 날로 사용합니다.
-vbTuesday – 화요일을 주의 첫 번째 날로 사용합니다.
-vbWednesday – 수요일을 주의 첫 번째 날로 사용합니다.
-vbThursday – 목요일을 주의 첫 번째 날로 사용합니다.
-vbFriday – 금요일을 주의 첫 번째 날로 사용합니다.
-vbSaturday – 토요일을 주의 첫 번째 날로 사용합니다.
-vbUseSystemDayOfTheWeek – 시스템 설정에서 지정한 첫 번째 요일을 사용합니다.

  • Firstweekofyear (선택사항) – 연도의 첫 번째 주를 지정하는 상수입니다. 비워두면 1월 첫째 주가 연도의 첫 번째 주로 사용됩니다. Firstweekofyear는 다음 값 중 하나일 수 있습니다:

-vbFirstJan1 – 1월 1일이 포함된 주를 사용합니다.
-vbFirstFourDays – 4일 이상이 포함된 첫 번째 주를 사용합니다.
-vbFirstFullWeek – 한 주 전체가 1월에 포함된 첫 번째 주를 사용합니다.
-vbSystem – 시스템 설정에 지정된 대로 연도의 첫 번째 주를 사용합니다.

다음 코드는 DateDiff 함수를 사용하는 방법을 보여줍니다:

Sub UsingTheDateDiffFunction()
 
Dim theDifferenceBetweenTwoDates As Long
 
theDifferenceBetweenTwoDates = DateDiff("q", "11/11/2010", "10/12/2012")
 
Debug.Print theDifferenceBetweenTwoDates
 
End Sub

결과는 다음과 같습니다:

VBA DatePart 함수

DatePart 함수를 사용하여 주어진 날짜의 일부(일, 주, 분기, 월 등)를 반환할 수 있습니다.

DatePart 함수의 구문은 다음과 같습니다:

DatePart(Interval, Date,[Firstdayofweek], [Firstweekofyear]) :

  • Interval – 반환할 날짜의 일부를 지정하는 문자열입니다. 다음 값 중 하나 일 수 있습니다:

“d” – 일
“ww” – 주
“w” – 주일(1~7)
“m” – 월
“q” – 분기
“yyyy” – 연도
“y” – 일(1~365)
“h” – 시간
“n” – 분
“s” – 초

  • Date – 날짜 입력값
  • Firstdayofweek (선택사항) – 함수가 주의 첫 번째 날로 사용할 요일을 지정하는 상수입니다. 비어있을 경우 일요일이 주의 첫번째 요일로 사용됩니다. Firstdayofweek는 다음 값 중 하나를 사용할 수 있습니다:

-vbSunday – 일요일을 주의 첫 번째 날로 사용합니다.
-vbMonday – 월요일을 주의 첫 번째 날로 사용합니다.
-vbTuesday – 화요일을 주의 첫 번째 날로 사용합니다.
-vbWednesday – 수요일을 주의 첫 번째 날로 사용합니다.
-vbThursday – 목요일을 주의 첫 번째 날로 사용합니다.
-vbFriday – 금요일을 주의 첫 번째 날로 사용합니다.
-vbSaturday – 토요일을 주의 첫 번째 날로 사용합니다.
-vbUseSystemDayOfTheWeek – 시스템 설정에서 지정한 요일을 사용합니다.

  • Firstweekofyear (선택사항) – 연도의 첫 번째 주를 지정하는 상수입니다. 비워두면 1월 첫째 주가 연도의 첫 번째 주로 사용됩니다. Firstweekofyear는 다음 값 중 하나일 수 있습니다:

-vbFirstJan1 – 1월 1일이 포함된 주를 사용합니다.
-vbFirstFourDays – 1월 날짜 4일 이상이 포함된 첫 번째 주를 사용합니다.
-vbFirstFullWeek – 한 주 전체가 1월에 포함된 첫 번째 주를 사용합니다.
-vbSystem – 시스템 설정에 지정된 대로 연도의 첫 번째 주를 사용합니다.

다음 코드는 DatePart 함수를 사용하는 방법을 보여줍니다:

Sub UsingTheDatePartFunction()

Dim thePartOfTheDate As Integer

thePartOfTheDate = DatePart("yyyy", "12/12/2009")

Debug.Print thePartOfTheDate

End Sub

결과는 다음과 같습니다:

VBA DateSerial 함수

VBA DateSerial 함수는 연도, 월, 일을 입력 인자로 하여 날짜를 반환합니다.

DateSerial 함수의 구문은 다음과 같습니다:

DateSerial(Year,  Month, Day) :

  • Year – 연도를 나타내는 100~9999 사이의 정수 값입니다.
  • Month – 월을 나타내는 정수 값입니다.
  • Day – 일을 나타내는 정수 값입니다.

다음 코드는 DateSerial 함수를 사용하는 방법을 보여줍니다:

Sub UsingTheDateSerialFunction()

Dim theDate As Date

theDate = DateSerial(2010, 11, 10)

Debug.Print theDate

End Sub

결과는 다음과 같습니다:

VBA DateValue 함수

DateValue 함수는 날짜의 문자열 표현이 주어지면 날짜(Date  유형 변수)를 반환합니다.

DateValue 함수의 구문은 다음과 같습니다:

DateValue(Date) :

  • Date – 날짜를 나타내는 문자열입니다.

다음 코드는 DateValue 함수를 사용하는 방법을 보여줍니다:

Sub UsingTheDateValueFunction()

Dim theDate As Date

theDate = DateValue("2022년 10월 29일")

Debug.Print theDate

End Sub

결과는 다음과 같습니다:

VBA Day 함수

Day 함수를 사용하여 입력 날짜의 일을 반환할 수 있습니다.

Day 함수의 구문은 다음과 같습니다:

Day(Date_value) :

  • Date_value – 날짜 값

다음 코드는 Day 함수를 사용하는 방법을 보여줍니다:

Sub UsingTheDayFunction()

Dim theDay As Integer

theDay = Day("10/12/2010")

Debug.Print theDay

End Sub

결과는 다음과 같습니다:

VBA Hour 함수

Hour 함수를 사용하여 입력한 시간의 시 값을 반환할 수 있습니다.

Hour 함수의 구문은 다음과 같습니다:

Hour(Time) :

  • Time – 시간

다음 코드는 시간 함수를 사용하는 방법을 보여줍니다:

Sub UsingTheHourFunction()
 
Dim theHour As Integer

theHour = Hour("2:14:17 AM")

Debug.Print theHour

End Sub

결과는 다음과 같습니다:

VBA Minute 함수

Minute 함수를 사용하여 입력한 시간의 분 값을 반환할 수 있습니다.

Minute 함수의 구문은 다음과 같습니다:

Minute(Time) :

  • Time – 시간

다음 코드는 Minute 함수를 사용하는 방법을 보여줍니다:

Sub UsingTheMinuteFunction()
 
Dim theMinuteValue As Integer

theMinuteValue = Minute("2:14:17 AM")

Debug.Print theMinuteValue

End Sub

결과는 다음과 같습니다:

VBA Second 함수

Second 함수를 사용하여 입력 시간의 초 값을 반환할 수 있습니다.

Second 함수의 구문은 다음과 같습니다:

Second(Time) :

  • Time – 시간

다음 코드는 Second 함수를 사용하는 방법을 보여줍니다:

Sub UsingTheSecondFunction()
 
Dim theSecondValue As Integer

theSecondValue = Second("2:14:17 AM")

Debug.Print theSecondValue

End Sub

결과는 다음과 같습니다:

VBA Month 함수

Month 함수를 사용하여 입력 날짜의 월을 반환할 수 있습니다.

Month 함수의 구문은 다음과 같습니다:

Month(Date_value) :

  • Date_value – 날짜

다음 코드는 월 함수를 사용하는 방법을 보여줍니다:

Sub UsingTheMonthFunction()
 
Dim theMonth As Integer

theMonth = Month("11/18/2010")
Debug.Print theMonth

End Sub

결과는 다음과 같습니다:

VBA MonthName 함수

MonthName 함수를 사용하여 숫자로 입력된 월을 이름으로 변환할 수 있습니다.

MonthName 함수의 구문은 다음과 같습니다:

MonthName(Number_of_month, [Abbreviate]) :

  • Number_of_month – 숫자 형식의 월. 1에서 12 사이의 정수값.
  • Abbreviate (선택사항) – 월 이름을 약어로 사용할지 여부를 지정합니다(영문을 기본값으로 사용할 경우만 해당합니다). 비워두면 기본값인 False가 사용됩니다.
Sub UsingTheMonthNameFunction()
 
Dim theMonthName As String

theMonthName = MonthName(12, False)
Debug.Print theMonthName

End Sub

결과는 다음과 같습니다:

VBA TimeSerial 함수

TimeSerial 함수는 시, 분, 초를 입력값으로 받아 시간을 반환합니다.

TimeSerial 함수의 구문은 다음과 같습니다:

TimeSerial(Hour,  Minute, Second) :

  • Hour – 시간 값을 나타내는 0~23 사이의 정수 값입니다.
  • Minute – 분 값을 나타내는 0~59 사이의 정수 값입니다.
  • Second – 초 값을 나타내는 0~59 사이의 정수 값입니다.

다음 코드는 TimeSerial 함수를 사용하는 방법을 보여줍니다:

Sub UsingTheTimeSerialFunction()

Dim theTime As Date
theTime = TimeSerial(1, 10, 15)

Debug.Print theTime

End Sub

결과는 다음과 같습니다:

VBA TimeValue 함수

TimeValue 함수는 날짜 또는 시간의 문자열 표현에서 시간을 반환합니다.

TimeValue 함수의 구문은 다음과 같습니다:

TimeValue(Time) :

  • Time – 문자열 형식의 시간

다음 코드는 TimeValue 함수를 사용하는 방법을 보여줍니다:

Sub UsingTheTimeValueFunction()

Dim theTime As Date
theTime = TimeValue("22:10:17")

Debug.Print theTime

End Sub

결과는 다음과 같습니다:

VBA Weekday 함수

Weekday 함수를 사용하여 입력 날짜의 요일을 나타내는 1~7 사이의 정수를 반환할 수 있습니다.

Weekday 함수의 구문은 다음과 같습니다:

Weekday(Date, [Firstdayofweek]) :

  • Date – 날짜
  • Firstdayofweek (선택사항) – 함수가 주의 첫 번째 날로 사용할 요일을 지정하는 상수입니다. 비어있을 경우 일요일이 주의 첫 번째 날로 사용됩니다.

-vbSunday – 일요일을 주의 첫 번째 날로 사용합니다.
-vbMonday – 월요일을 주의 첫 번째 날로 사용합니다.
-vbTuesday – 화요일을 주의 첫 번째 날로 사용합니다.
-vbWednesday – 수요일을 주의 첫 번째 날로 사용합니다.
-vbThursday – 목요일을 주의 첫 번째 날로 사용합니다.
-vbFriday – 금요일을 주의 첫 번째 날로 사용합니다.
-vbSaturday – 토요일을 주의 첫 번째 날로 사용합니다.
-vbUseSystemDayOfTheWeek – 시스템 설정에서 지정한 요일을 사용합니다.

다음 코드는 Weekday 함수를 사용하는 방법을 보여줍니다:

Sub UsingTheWeekdayFunction()

Dim theWeekDay As Integer
theWeekDay = Weekday("11/20/2019")
Debug.Print theWeekDay

End Sub

결과는 다음과 같습니다:

VBA WeekdayName 함수

WeekdayName 함수를 사용하여 입력된 요일 번호를 요일 이름으로 변환할 수 있습니다.

WeekdayName 함수의 구문은 다음과 같습니다:

WeekdayName(Weekday, [Abbreviate], [Firstdayoftheweek]) :

  • Weekday – 1에서 7 사이의 정수값 입니다.
  • Abbreviate (선택사항) -요일 이름을 축약할지 여부를 지정합니다. 비워두면 기본값인 False가 사용됩니다.
  • Firstdayofweek (선택사항) – 함수가 주의 첫 번째 날로 사용할 요일을 지정하는 상수입니다. 비어 있으면 일요일이 주의 첫 번째 날로 사용됩니다. Firstdayofweek는 다음 값 중 하나를 사용할 수 있습니다:

-vbSunday – 일요일을 주의 첫 번째 날로 사용합니다.
-vbMonday – 월요일을 주의 첫 번째 날로 사용합니다.
-vbTuesday – 화요일을 주의 첫 번째 날로 사용합니다.
-vbWednesday – 수요일을 주의 첫 번째 날로 사용합니다.
-vbThursday – 목요일을 주의 첫 번째 날로 사용합니다.
-vbFriday – 금요일을 주의 첫 번째 날로 사용합니다.
-vbSaturday – 토요일을 주의 첫 번째 날로 사용합니다.
-vbUseSystemDayOfTheWeek – 시스템 설정에서 지정한 요일을 사용합니다.

Sub UsingTheWeekdayNameFunction()
 
Dim theWeekdayName As String

theWeekdayName = WeekdayName(4)
Debug.Print theWeekdayName

End Sub

결과는 다음과 같습니다:

VBA Year 함수

Year 함수를 사용하여 입력 날짜의 연도를 반환할 수 있습니다.

Year 함수의 구문은 다음과 같습니다:

Year(Date_value) :

  • Date_value – 날짜

다음 코드는 Year 함수를 사용하는 방법을 보여줍니다:

Sub UsingTheYearFunction()

Dim theYear As Integer

theYear = Year("11/12/2010")
Debug.Print theYear

End Sub

결과는 다음과 같습니다:

VBA에서 날짜 비교하기

VBA에서 >, <, = 연산자를 사용하여 날짜를 비교할 수 있습니다. 다음 코드는 VBA에서 두 날짜를 비교하는 방법을 보여줍니다.

Sub ComparingDates()

Dim dateOne As Date
Dim dateTwo As Date

dateOne = "10/10/2010"
dateTwo = "11/11/2010"

If dateOne > dateTwo Then
Debug.Print "dateOne 이 늦은 날짜입니다"

ElseIf dateOne = dateTwo Then
Debug.Print "두 날짜는 동일합니다"

Else
Debug.Print "dateTwo 가 더 늦은 날짜입니다"

End If
End Sub

날짜의 문자열 서식에 대한 자세한 내용은 이 튜토리얼을 참조하세요.

vba-free-addin

VBA 코드 예시 추가 기능

본 웹사이트에 있는 모든 코드 예시에 쉽게 접근해보세요.

메뉴로 이동하여 클릭만 하면 코드는 모듈에 바로 입력됩니다. .xlam 추가 기능.

(설치가 필요 없습니다!)

무료 다운로드

VBA 코드 예시로 돌아가기