VBA Function

Date 함수

노만e 2025. 3. 16. 17:34

엑셀 VBA에서 Date 함수는 현재 시스템의 날짜를 반환하는 함수입니다.

즉, 컴퓨터의 현재 날짜를 가져오는 데 사용됩니다.


1. 기본 문법

Date
  • 반환값: 오늘 날짜 (YYYY-MM-DD 형식, 시스템 설정에 따라 다름)

2. 현재 날짜 가져오기

Sub 현재_날짜()
MsgBox "오늘 날짜: " & Date
End Sub

📌 출력 (예시): "오늘 날짜: 2025-03-08"

📌 현재 시스템의 날짜를 가져와 메시지 박스에 출력


3. 셀에 현재 날짜 입력

Sub 셀에_날짜입력()
Range("A1").Value = Date
End Sub

📌 A1 셀에 오늘 날짜 입력


4. 날짜 형식 지정 (Format 함수 사용)

Sub 날짜_형식_변환()
MsgBox Format(Date, "yyyy년 mm월 dd일")
End Sub

📌 출력 (예시): "2025년 03월 08일"

📌 날짜를 원하는 형식으로 변환


5. 현재 날짜와 시간 (Now 함수)

Sub 현재_날짜_시간()
MsgBox "현재 날짜와 시간: " & Now
End Sub

📌 출력 (예시): "현재 날짜와 시간: 2025-03-08 15:30:45"

📌 현재 날짜 및 시간을 가져옴


6. 특정 날짜 설정 (DateSerial)

Sub 특정날짜_설정()
Dim 특정날짜 As Date
특정날짜 = DateSerial(2025, 12, 25)
MsgBox "설정된 날짜: " & 특정날짜
End Sub

📌 출력: "설정된 날짜: 2025-12-25"

📌 연도, 월, 일을 직접 설정하여 특정 날짜 생성


7. 오늘로부터 날짜 계산 (DateAdd)

Sub 날짜_계산()
Dim 일주일후 As Date
일주일후 = DateAdd("d", 7, Date)
MsgBox "일주일 후: " & 일주일후
End Sub

📌 출력: "일주일 후: 2025-03-15"

📌 오늘 날짜에서 7일 후의 날짜 계산 (d = 일 단위)


8. 날짜 차이 계산 (DateDiff)

Sub 날짜_차이()
Dim 차이 As Integer
차이 = DateDiff("d", Date, DateSerial(2025, 12, 25))
MsgBox "크리스마스까지 남은 일수: " & 차이 & "일"
End Sub

📌 출력: "크리스마스까지 남은 일수: 292일"

📌 오늘과 2025-12-25 사이의 일수 계산 (d = 일 단위)


9. 현재 연도, 월, 일 추출 (Year, Month, Day)

Sub 연도_월_일_추출()
MsgBox "올해: " & Year(Date) & vbNewLine & _
"이번 달: " & Month(Date) & vbNewLine & _
"오늘: " & Day(Date)
End Sub

📌 출력:

올해: 2025
이번 달: 3
오늘: 8

📌 현재 연도, 월, 일 개별 추출


10. 요일 확인 (Weekday, WeekdayName)

Sub 요일_확인()
MsgBox "오늘은 " & WeekdayName(Weekday(Date)) & "요일입니다."
End Sub

📌 출력 (예시): "오늘은 토요일입니다."

📌 현재 날짜의 요일을 한글로 출력


11. 셀 범위에 날짜 자동 입력

Sub 날짜_자동입력()
Dim i As Integer
For i = 0 To 9
Range("A1").Offset(i, 0).Value = Date + i
Next i
End Sub

📌 A1:A10에 오늘부터 10일간 날짜 자동 입력


12. 셀 범위에 평일만 입력

Sub 평일만_입력()
Dim i As Integer, d As Date
d = Date ' 오늘 날짜
For i = 0 To 9
Do
d = d + 1 ' 하루씩 증가
Loop While Weekday(d, vbMonday) > 5 ' 주말 제외
Range("A1").Offset(i, 0).Value = d
Next i
End Sub

📌 A1:A10에 주말을 제외한 평일 날짜 입력


13. 두 날짜 사이의 주말 개수 계산

Sub 주말_개수()
Dim 시작 As Date, 종료 As Date
Dim d As Date, 주말수 As Integer
시작 = Date ' 오늘 날짜
종료 = DateAdd("m", 1, 시작) ' 한 달 후
For d = 시작 To 종료
If Weekday(d, vbMonday) > 5 Then 주말수 = 주말수 + 1
Next d
MsgBox "주말 개수: " & 주말수 & "일"
End Sub

📌 오늘부터 한 달 동안의 주말 개수를 계산


14. 현재 날짜를 파일 이름으로 사용

Sub 파일이름_날짜포함()
Dim 파일이름 As String
파일이름 = "보고서_" & Format(Date, "yyyy-mm-dd") & ".xlsx"
MsgBox "파일 이름: " & 파일이름
End Sub

📌 출력: "파일 이름: 보고서_2025-03-08.xlsx"

📌 현재 날짜를 포함한 파일 이름 생성


📝 정리

기능
VBA 코드
현재 날짜 반환
Date
현재 날짜와 시간 반환
Now
특정 날짜 생성
DateSerial(2025, 12, 25)
날짜 추가 (n일 후)
DateAdd("d", 7, Date)
날짜 차이 계산
DateDiff("d", Date, DateSerial(2025,12,25))
연도 추출
Year(Date)
월 추출
Month(Date)
일 추출
Day(Date)
요일 확인
WeekdayName(Weekday(Date))
셀에 날짜 입력
Range("A1").Value = Date
연속 날짜 자동 입력
Range("A1").Offset(i, 0).Value = Date + i
주말 제외 평일만 입력
Do While Weekday(d, vbMonday) > 5: d = d + 1: Loop
현재 날짜를 파일 이름으로 사용
파일이름 = "보고서_" & Format(Date, "yyyy-mm-dd") & ".xlsx"

🔥 VBA의 Date 함수와 관련 기능을 활용하면 날짜를 다루는 다양한 작업을 자동화할 수 있습니다! 🚀