VBA 날짜 및 시간과 관련된 함수들
In this Article
이 튜토리얼에서는 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
날짜의 문자열 서식에 대한 자세한 내용은 이 튜토리얼을 참조하세요.