VBA 날짜 함수(예제와 함께 12가지 매크로 사용)

  • 이 공유
Hugh West

목차

Microsoft Visual Basic 애플리케이션에서 날짜 함수 또는 날짜 관련 개념은 데이터 세트에서 다양한 작업을 수행하는 데 필수적입니다. 이러한 기능을 사용해야 하는 다양한 상황에 처할 수 있습니다. 이 자습서에서는 VBA의 날짜 기능에 대해 적절한 예와 적절한 그림을 통해 배웁니다. 또한 워크시트에서 구현할 수 있는 여러 날짜 함수를 제공합니다.

연습 워크북 다운로드

VBA Date.xlsm 사용

VBA 날짜 함수 소개

Excel은 날짜/시간 함수에서 날짜를 분류합니다. 내장 함수입니다. VBA 매크로에서 이를 사용하여 모든 날짜 관련 작업을 수행할 수 있습니다.

Date 함수를 시작하기 전에 VBA 의 날짜 변수에 대해 알아야 합니다.

⏺ 구문

Date()

⏺ 인수 설명

인수 없음 .

⏺ 반환

현재 날짜를 반환합니다.

⏺ 사용 가능

Excel for Office 365, 엑셀 2019, 엑셀 2016, 엑셀 2013, 맥용 엑셀 2011, 엑셀 2010, 엑셀 2007, 엑셀 2003, 엑셀 XP, 엑셀 2000

⏺ 예시

아시다시피 다음과 같이 입력할 수 있는 인수가 없습니다.

5951

Date 함수로 작업할 때 이 예제와 같이 VBA 코드에 괄호를 넣지 않습니다.

출력 :

12일요일

2 – 월요일

3 – 화요일

4 – 수요일

5 – 목요일

6 – 금요일

7 – 토요일

코드 스니펫:

2285

출력:

보시다시피 VBA 날짜 함수는 4를 반환합니다. 즉, 수요일.

관련 콘텐츠: 엑셀 VBA에서 고정 함수 사용 방법(예제 4개)

9. VBA WeekdayName 함수

제한된 요일을 표시하는 문자열을 반환합니다.

구문 :

WeekdayName(weekday, abbreviate, firstdayofweek)

인수:

요일: 필수 필드입니다. 요일의 숫자 식별입니다. 각 요일의 숫자 값은 첫 번째 요일 설정에 따라 달라집니다.

약어: 선택 사항입니다. 요일 이름을 줄일지 여부를 나타내는 부울 값입니다. 건너뛸 경우 기본값은 False이며 요일 이름이 축약되거나 단축되지 않음을 나타냅니다.

firstdayofweek: 선택 필드입니다. 주의 첫 번째 요일을 나타내는 숫자 값입니다. 다양한 값을 가질 수 있습니다.

firstdayofweek 인수는 후속 값을 가질 수 있습니다.

vbSunday – 일요일을 다음과 같이 사용합니다. 첫 번째 요일.

vbMonday – 월요일을 한 주의 첫 번째 요일로 지정합니다.

vbTuesday – 화요일을 첫 번째 요일로 지정합니다. 의 하루주.

vbWednesday – 수요일을 주의 첫 번째 요일로 사용합니다.

vbThursday – 목요일을 주의 첫 번째 요일로 사용합니다. .

vbFriday – 금요일을 주의 첫 번째 요일로 사용합니다.

vbSaturday – 토요일을 주의 첫 번째 요일로 사용합니다.

vbUseSystemDayOfTheWeek – 장치 설정에 의해 정의된 주의 첫 번째 요일을 사용합니다.

코드 스니펫:

4566

출력:

보시다시피 위의 VBA 코드는 요일 이름을 보여줍니다.

관련 내용: 방법 Excel에서 VBA WeekdayName 함수를 사용하는 방법 (예제 2개)

10. VBA Date의 Year 함수

연도를 나타내는 실수를 갖는 Variant(Integer)를 반환합니다.

구문 :

년(날짜)

인수:

필수 날짜 인수는 Variant, 숫자 표현식, 문자열 표현식 또는 조합입니다. 날짜를 나타냅니다. 날짜에 Null이 포함되어 있으면 Null도 반환합니다.

코드 스니펫:

3628

출력:

여기서 VBA 코드를 구현한 후 주어진 날짜의 연도를 볼 수 있습니다.

자세히 보기: Excel에서 VBA 바꾸기 기능 사용( 11 응용 프로그램)

11. FormatDateTime 함수

이 함수는 날짜 또는 시간 형식의 식을 반환합니다.

구문 :

FormatDateTime(날짜, [ NamedFormat])

인수:

날짜: 필수 필드입니다. 서식을 지정할 날짜 식입니다.

NamedFormat: 선택 사항입니다. 날짜/시간 형식을 표시하는 숫자 값입니다. 생략된 경우 vbGeneralDate 를 사용했습니다.

NamedFormat 은 다음 값을 가질 수 있습니다.

vbGeneralDate (0): 날짜 및/또는 시간을 표시합니다. 날짜 부분이 있으면 짧은 날짜로 표현합니다. 시간 부분이 있으면 긴 시간으로 표시합니다. 두 부분이 있는 경우 모두 표시됩니다.

vbLongDate(1): 컴퓨터의 지역 설정에서 선택한 자세한 날짜 구성을 활용하여 날짜를 표시합니다.

vbShortDate (2): 컴퓨터의 지역 설정에 지정된 짧은 날짜 형식을 작동하여 날짜를 표시합니다.

vbLongTime(3): 에 지정된 시간 형식을 사용하여 시간을 표시합니다. 컴퓨터의 지역 설정.

vbShortTime(4): 24시간 형식(hh:mm)을 사용하여 시간을 표시합니다.

코드 조각:

6691

출력:

코드를 실행하면 다음 대화 상자가 표시됩니다.

여기에서 VBA의 모든 시간 및 날짜 형식을 볼 수 있습니다.

자세히 보기: VBA TimeValue 함수 사용 방법(6개의 관련 예)

12. VBA CDate 함수

이 함수는 유효한 날짜 및 시간 표현을 일반적인 날짜로 변환합니다.

구문 :

C날짜(날짜)

인수:

필수 날짜 인수는 Variant, 숫자 표현식, 문자열 표현식 또는 조합입니다. 날짜를 나타냅니다. 날짜에 Null이 포함되어 있으면 Null도 반환합니다.

코드 스니펫:

6622

출력:

보시다시피 VBA 코드는 Excel의 일반적인 날짜 형식을 반환했습니다.

관련 콘텐츠: Excel에서 VBA DIR 함수를 사용하는 방법 (7가지 예)

VBA 날짜의 예

다음 섹션에서는 VBA를 사용하는 세 가지 실용적이고 적절한 날짜 예를 제공합니다. 이러한 예에는 날짜 관련 문제와 해결 방법이 포함됩니다. VBA 지식을 향상시키기 위해 이 모든 예제를 읽고 연습하는 것이 좋습니다. 시작하겠습니다.

1. VBA에서 날짜를 사용하여 연체 날짜 계산

연체의 의미는 늦게 발생하거나 기한이 지난 것입니다. 특히 마감일이 지났거나 요구 사항을 충족하기에는 너무 늦은 경우입니다.

일요일까지 과제를 제출해야 한다고 가정해 보겠습니다. 하지만 오늘은 화요일인데 아직 제출하지 않으셨습니다. 2일 연체라고 할 수 있습니다.

다음 데이터세트를 살펴보세요.

여기에 일부 학생의 데이터세트와 과제 제출이 있습니다. 데이트. 최종 제출일을 확인할 수 있습니다. 우리의 목표는 제출 날짜를 기준으로 기한이 지난 날짜를 찾는 것입니다. 이제 이 작업을 수행하려면 다음 단계를 따르세요.

📌 단계

  • 먼저 Alt+F11 키보드에서 VBA 편집기를 엽니다.
  • 그런 다음 삽입 > Module .

  • 그 후 다음 코드를 입력합니다.
3727

We used the ABS 기능 으로 빼기 기호를 제거합니다.

  • 그런 다음 파일을 저장합니다.
  • 그 다음 키보드에서 Alt+F8 을 눌러 엽니다. 매크로 대화 상자.
  • 다음으로
  • 를 선택한 다음 실행 을 클릭합니다.

보시다시피 VBA에서 날짜를 성공적으로 사용하고 기한이 지난 날짜를 찾았습니다.

유사 읽기

  • VBA 공간 사용 방법 Excel의 함수(3가지 예)
  • Excel에서 VBA ChDir 함수 사용(4가지 적절한 예)
  • Excel VBA에서 IsNull 함수를 사용하는 방법 (예제 5개)
  • Excel에서 VBA While Wend 문 사용 (예제 4개)
  • Excel의 VBA에서 Sub를 호출하는 방법(4 예)

2. VBA

을 이용하여 날짜에서 생년월일 찾기 이제 특정 날짜에서 년도를 찾을 수 있습니다. 이것은 찾기가 매우 간단합니다.

다음 데이터 세트를 살펴보십시오.

여기에서 일부 사람의 생년월일을 볼 수 있습니다. 우리의 목표는 날짜에서 출생 연도를 추출하고 또한 마지막 항목 Elizabeth의 출생 연도를 추출하는 것입니다.

📌 Steps

  • 먼저 <6을 누르십시오. 키보드에서>Alt+F11 을 눌러 VBA 편집기를 엽니다.
  • 그런 다음 삽입>모듈 을 선택합니다.

  • 그 다음 입력다음 코드:
Sub day_function() Dim date1, the_day date1 = #12/12/2023# the_day = Day(date1) MsgBox the_day End Sub
  • 그런 다음 파일을 저장합니다.
  • 그런 다음 키보드에서 Alt+F8 을 눌러 매크로 대화 상자를 엽니다. 상자.
  • 다음으로 find_year 를 선택합니다.
  • 그런 다음 실행 을 클릭합니다.

마지막으로 각 날짜에서 태어난 연도를 추출하는 데 성공한 것을 볼 수 있습니다. 또한 엑셀에서 VBA의 날짜를 이용하여 마지막 항목의 생년월일을 찾았습니다.

3. VBA를 이용하여 날짜에 날짜 추가

이제 날짜 변수를 정의하여 사용할 수 있습니다. 날짜를 추가합니다. 이를 수행하기 위해 VBA의 DateAdd 방법을 사용하고 있습니다. 이 기능을 사용하여 특정 날짜에 일, 월, 연도를 추가할 수 있습니다.

다음 데이터 세트를 살펴보십시오.

여기에서 일부 이름과 첨부된 날짜를 볼 수 있습니다. 이제 우리의 목표는 주어진 날짜에 5일을 더 추가하고 새 날짜를 생성하는 것입니다.

📌 단계

  • 먼저 Alt 키를 누릅니다. 키보드에서 +F11 을 눌러 VBA 편집기를 엽니다.
  • 그런 다음 삽입>모듈 을 선택합니다.

  • 그 후 다음 코드를 입력합니다.
8204

여기서 DateAdd 함수의 인수로 "d"를 사용했습니다. "y" 또는 "m"으로 변경하여 각각 년 또는 월을 추가할 수 있습니다.

  • 그런 다음 파일을 저장합니다.
  • 그 후 Alt+F8을 누릅니다. 키보드의 을 눌러 매크로 대화 상자를 엽니다.
  • 다음으로 선택합니다.
  • 그런 다음 실행 을 클릭합니다.

가능한 한VBA의 날짜를 사용하여 날짜에 날짜를 성공적으로 추가했습니다. 이제 원하는 대로 코드를 수정할 수 있습니다.

💬 기억해야 할 사항

VBA 날짜 함수는 실제로 TODAY 함수 처럼 작동합니다. Excel에서.

VBA DATE는 Excel에서 비휘발성 함수입니다. 즉, 전원 공급이 끊어져도 데이터가 유지됩니다.

기본적으로 VBA는 구현 시 날짜 값을 DATE로 저장합니다.

따라서 날짜 변수를 문자열/텍스트로 할당하려고 하면 오류가 발생합니다.

날짜의 기본값은 0입니다. 0001년 1월 1일 00:00(자정).

결론

결론적으로 이 튜토리얼이 VBA 코드의 날짜에 대한 유용한 정보를 제공했기를 바랍니다. 이러한 지침을 모두 배우고 데이터 세트에 적용하는 것이 좋습니다. 실습 워크북을 다운로드하여 직접 해보십시오. 또한 의견 섹션에서 의견을 자유롭게 제공하십시오. 귀하의 소중한 피드백은 저희가 이와 같은 자습서를 만들도록 동기를 부여합니다.

다양한 Excel 관련 문제 및 해결 방법에 대해 Exceldemy.com 웹 사이트를 확인하는 것을 잊지 마십시오.

새로운 방법을 계속 배우고 계속 성장하세요!

VBA에서 알아야 할 날짜 함수

이제 다음 섹션에서는 VBA에서 다양한 용도로 사용할 수 있는 몇 가지 추가 날짜 함수를 보여줍니다. VBA에서 날짜로 작업할 수 있는 모든 가능한 방법을 알아보려면 이 섹션을 읽으십시오. 무기고에 보관하는 것이 좋습니다. 그것은 확실히 당신의 지식을 향상시킬 것입니다.

1. VBA에서 날짜로 DateAdd 기능

VBA에서는 특정 날짜에 날짜를 추가하기 위해 DateAdd 기능을 사용합니다. 그런 다음 결과 날짜를 반환합니다.

구문:

DateAdd(간격, 숫자, 날짜)

인수:

간격: 필수입니다. String 식은 추가하려는 시간 간격입니다.

숫자: 필수입니다. 추가하려는 간격의 수인 숫자 표현식입니다. 양수(미래 날짜 가져오기) 또는 음수(과거 날짜 가져오기)가 될 수 있습니다.

date: 원래 날짜/시간.

이제 간격 인수는 다음 설정을 가질 수 있습니다.

yyyy – Year

q – 분기

m –

y – 일

d –

w – 평일

ww –

h –

n –

초 –

코드 조각 :

8956

출력:

보시다시피 현재 날짜에 15개의 날짜를 추가했습니다.VBA.

자세히 보기: VBA에서 IsDate 함수를 사용하는 방법(예제 3개)

2. VBA에서 DateDiff 함수

DateDiff 함수는 지정된 두 날짜 사이의 시간 간격을 결정하는 Variant(Long)를 반환합니다.

Syntax :

DateDiff( 간격, date1, date2, [ firstdayofweek, [ firstweekofyear ]] )

인수:

간격: 필수의. 문자열 식은 추가하려는 시간 간격입니다. 두 날짜 간의 차이를 계산하는 데 사용하는 시간 간격인 문자열 식입니다.

date1,date2 : 필수; 변형(날짜). 계산에 사용하려는 두 날짜.

첫 번째 요일: 선택 사항. 주의 첫 번째 요일을 정의하는 상수입니다. 고정되지 않은 경우 일요일로 가정합니다.

firstweekofyear: 선택 사항입니다. 연도의 첫 번째 주를 설정하는 상수입니다. 설정하지 않으면 첫 번째 주는 1월 1일이 나타나는 주로 간주됩니다.

이제 간격 인수는 다음 설정을 가질 수 있습니다.

yyyy – 연도

q – 분기

m –

y – 일

d –

w – 평일

ww –

h –

n –

초 – Second

firstdayofweek 인수의 설정은 다음과 같습니다.

vbSunday –일요일을 가장 중요한 요일로 사용합니다.

vbMonday – 월요일을 한 주의 첫 번째 요일로 사용합니다.

vbTuesday – 화요일 운영 주의 첫 번째 요일로.

vbWednesday – 수요일을 주의 첫 번째 요일로 지정합니다.

vbThursday – 목요일을 주의 첫 번째 요일로 사용합니다. 오히려 요일입니다.

vbFriday – 금요일을 주의 첫 번째 요일로 사용합니다.

vbSaturday – 토요일을 첫 번째 요일로 사용합니다. of the week.

vbUseSystemDayOfTheWeek – 장치 설정에 의해 정의된 주의 첫 번째 요일을 사용합니다.

The firstweekofyear 설정은 다음과 같습니다.

vbFirstJan1 – 1월 1일을 포함하는 주를 활용합니다.

vbFirstFourDays – 최소 새해의 4일.

vbFirstFullWeek – 해당 연도의 첫 번째 전체 주를 작동합니다.

vbSystem – 해당 연도의 첫 번째 주를 사용합니다. 장치 위치에 따라 정의된 연도.

코드 스니펫:

3084

출시 put :

결국 VBA에서 두 날짜의 차이를 반환합니다.

자세히 보기: Excel에서 VBA DateDiff 함수를 사용하는 방법(예제 9개)

3. DatePart 함수를 날짜로

DatePart 함수는 정의된 부분을 포함하는 Variant(Integer)를 반환합니다. 제공된 날짜.

구문 :

DatePart(간격, 날짜, [ 첫 번째 주, [firstweekofyear ]])

인수:

간격: 필수입니다. 문자열 식은 추가하려는 시간 간격입니다. 두 날짜 간의 차이를 계산하는 데 사용하는 시간 간격인 문자열 식입니다.

날짜: 필수; 변형(날짜). 계산에 사용할 날짜입니다.

첫 번째 요일: 선택 사항입니다. 주의 첫 번째 요일을 정의하는 상수입니다. 고정되지 않은 경우 일요일로 가정합니다.

firstweekofyear: 선택 사항입니다. 연도의 첫 번째 주를 설정하는 상수입니다. 설정하지 않으면 첫 번째 주는 1월 1일이 나타나는 주로 간주됩니다.

이제 간격 인수는 다음 설정을 가질 수 있습니다.

yyyy – 연도

q – 분기

m –

y – 일

d –

w – 평일

ww –

h –

n –

초 – Second

firstdayofweek 인수의 설정은 다음과 같습니다.

vbSunday – 일요일을 가장 중요한 요일로 사용합니다.

vbMonday – 월요일을 주의 첫 번째 요일로 사용합니다.

vbTuesday – 화요일을 주의 첫 번째 요일로 작동합니다.

vbWednesday – 수요일을 주의 첫 번째 요일로 사용합니다.

vbThursday – 목요일을 주의 첫 번째 요일로 사용합니다.week.

vbFriday – 금요일을 주의 첫 번째 요일로 사용합니다.

vbSaturday – 토요일을 주의 첫 번째 요일로 사용합니다.

vbUseSystemDayOfTheWeek – 장치 설정에 의해 정의된 주의 첫 번째 요일을 사용합니다.

The firstweekofyear 는 이러한 값은 다음과 같습니다.

vbFirstJan1 – 1월 1일을 포함하는 주를 작동합니다.

vbFirstFourDays – 최대 크기가 작은 4일을 포함하는 첫 번째 주를 사용합니다. 새해.

vbFirstFullWeek – 해당 연도의 전체 첫 번째 주를 활용합니다.

vbSystem – 해당 연도의 첫 번째 주를 선택한 대로 사용합니다. 기기 위치별로.

코드 스니펫 :

2494

출력 :

이러한 방식으로 VBA 코드에서 이 날짜 함수를 사용할 수 있습니다.

자세히 보기: Excel에서 VBA FileDateTime 함수를 사용하는 방법(3회 사용)

4. DateSerial 함수

DateSerial 함수를 이용하여 입력된 연월일을 기준으로 날짜를 확인할 수 있습니다.

구문:

DateSerial(년, 월, 일)

인수:

연도 – 필수 필드입니다. 100에서 9999 사이의 숫자 또는 연도를 나타내는 숫자 표현식입니다.

– 필수 필드입니다. 월을 정의하는 정수 값입니다.

– 필수 필드입니다. 날짜를 설명하는 정수 값입니다.

코드 스니펫:

9301

출력 :

자세히 보기: Excel에서 VBA TimeSerial을 사용하는 방법(예제 3개)

4. VBA DateValue 함수

이제 DateValue 함수를 사용하여 날짜를 정의합니다.

구문 :

DateValue(날짜)

인수:

여기서 날짜 인수는 일반적으로 100년 1월 1일부터의 날짜를 설명하는 문자열 표현식입니다. , ~ 9999년 12월 31일까지. 관계없이 날짜는 해당 범위의 날짜, 시간 또는 날짜와 시간을 모두 상징할 수 있는 모든 표현이 될 수 있습니다.

코드 스니펫:

1436

출력 :

보시다시피 VBA 코드에서 날짜 기능을 성공적으로 사용했습니다.

5. VBA의 Day 함수

1과 31 사이의 실수를 결정하는 Variant(Integer)를 반환하여 월의 날짜를 전달합니다.

Syntax :

일(날짜)

인수:

필요한 날짜 인수는 Variant입니다. , 숫자 표현식, 문자열 표현식 또는 조합. 날짜를 나타냅니다. 날짜에 Null이 포함되어 있으면 Null도 반환합니다.

코드 스니펫:

7661

출력:

보시다시피 VBA 코드를 사용하여 주어진 날짜의 요일이 12라는 것을 알았습니다.

관련 콘텐츠: VBA 형식 기능 in Excel(예제와 함께 8번 사용)

6. VBA 월 함수를 날짜로

1과 12 사이의 실수를 정의하는 Variant(정수)를 반환합니다.월을 포함하여 전달합니다.

구문 :

월(날짜)

인수:

필수 날짜 인수는 Variant, 숫자 표현식, 문자열 표현식 또는 조합입니다. 날짜를 나타냅니다. 날짜에 Null이 포함되어 있으면 Null도 반환합니다.

코드 스니펫:

3655

출력:

관련 콘텐츠: Excel에서 VBA 오른쪽 함수를 사용하는 방법(예제 6개)

유사 읽기

  • VBA Environ 함수 사용 방법(예제 4개)
  • Excel에서 VBA 및 함수 사용 방법(예제 4개)
  • Excel에서 VBA If – Then – Else 문(예제 4개)
  • Excel에서 VBA Abs 함수 사용 방법(예제 9개)
  • Excel VBA에서 Concatenate를 사용하는 방법(4가지 방법)

7. MonthName 함수

지정된 월을 나타내는 문자열을 반환합니다.

구문 :

월 이름(월, [ 약어 ])

인수:

월: 필수입니다. 월의 숫자 제목입니다. 예를 들어 1월은 1, 2월은 2 등입니다.

약어: 선택 사항입니다. 월 이름을 축약할지 여부를 나타내는 부울 값입니다. 건너뛴 경우 기본값은 False이며 월 이름이 축약되지 않았음을 나타냅니다.

코드 스니펫:

6901

출력:

보시다시피 월 이름을 찾았습니다.이 VBA 날짜 함수에 의해.

8. 요일 함수

Variant ( Integer )를 반환합니다. week.

구문 :

요일(날짜, [ 첫 번째 요일 ])

인수:

날짜: 필수 날짜 인수는 Variant, 숫자 표현식, 문자열 표현식 또는 조합입니다. 날짜를 나타냅니다. 날짜에 Null이 포함된 경우 Null도 반환합니다.

firstdayofweek: 선택 사항입니다. 주의 첫 번째 요일을 정의하는 상수입니다. 고정되지 않은 경우 일요일이 가정됩니다.

firstdayofweek 인수의 설정은 다음과 같습니다.

vbSunday – 일요일을 다음과 같이 사용합니다. 첫 번째 요일.

vbMonday – 월요일을 한 주의 첫 번째 요일로 지정합니다.

vbTuesday – 화요일을 첫 번째 요일로 지정합니다. 요일.

vbWednesday – 수요일을 주의 첫 번째 요일로 사용합니다.

vbThursday – 목요일을 주의 첫 번째 요일로 사용합니다. 주.

vbFriday – 금요일을 주의 첫 번째 요일로 사용합니다.

vbSaturday – 토요일을 주의 첫 번째 요일로 사용합니다. .

vbUseSystemDayOfTheWeek – 장치 설정에 의해 정의된 주의 첫 번째 요일을 사용합니다.

반환 매개변수

이제 이 함수는 정수를 반환합니다. 따라서 해당 정수의 의미는 다음과 같습니다.

1

Hugh West는 업계에서 10년 이상의 경험을 가진 고도로 숙련된 Excel 트레이너이자 분석가입니다. 그는 회계 및 재무 학사 학위와 경영학 석사 학위를 보유하고 있습니다. Hugh는 교육에 대한 열정을 가지고 있으며 따라하기 쉽고 이해하기 쉬운 독특한 교수법을 개발했습니다. Excel에 대한 그의 전문 지식은 전 세계 수천 명의 학생과 전문가가 자신의 기술을 향상시키고 경력에서 탁월하도록 도왔습니다. Hugh는 자신의 블로그를 통해 자신의 지식을 전 세계와 공유하고 개인과 기업이 잠재력을 최대한 발휘할 수 있도록 무료 Excel 자습서 및 온라인 교육을 제공합니다.