VBA 코드 예시로 돌아가기

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

튜토리얼에서는 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 코드 예시로 돌아가기