배움터  
  HOME > 배움터 > Daily Tip
Daily Tip

제품:   Excel 버전:   공통
검색어:   요일
제목:   오늘이 무슨 요일이지?
     
 

New Page 2
  STEP> 따라하기


VBA에는 날짜와 관련된 여러 가지 함수가 제공됩니다. 가장 잘 알려진 함수가 Date()일 것 같군요. 이것은 현재의 날짜를 알려주는 함수입니다. 엑셀의 워크시트 함수로 따지자면 Today()함수에 해당하는 역할을 합니다

날짜외에 요일을 알려주는 함수로는 WeekDay()함수가 있습니다. VBA도움말을 빌리자면 요일을 나타내는 정수를 포함한 Variant(Integer) 값을 반환합니다. 그리고 그 예까지 빌리면 다음과 같습니다.

Dim MyDate, MyWeekDay
MyDate = #February 12, 1969#      ' 날짜를 지정합니다.
MyWeekDay = Weekday(MyDate)   ' MyDate가 수요일을 나타내기 때문에 MyWeekDay가 4를 포함합니다

WeekDay()함수는 다음의 표와 같은 결과를 돌려줍니다.

상수 설명
vbSunday 1 일요일
vbMonday 2 월요일
vbTuesday 3 화요일
vbWednesday 4 수요일
vbThursday 5 목요일
vbFriday 6 금요일
vbSaturday 7 토요일

그리고 위의 표는 한 주의 시작을 ‘일요일’로 하는 경우입니다. 물론 대개는 그러겠지만.

그러나 WeekDay가 돌려주는 값이 정수값이기 때문에 따로 영문이나 한글로 표시하려면 If문이나 Select Case문과 같은 조건문을 다음처럼 사용하기도 합니다.

Select Case Weekday(MyDate)
Case 1 : str=”일요일”
Case 2 : str=”월요일”
Case 3 : str=”화요일”
Case 4 : str=”수요일”
Case 5 : str=”목요일”
Case 6 : str=”금요일”
Case 7 : str=”토요일”
End Select
MsgBox str

그러나 이런 방법보다 더 간단한 방법이 있습니다. 워크시트함수중 Text()함수를 사용하면 됩니다. 이 함수는 값을 지정한 표시 형식의 텍스트로 변환합니다. 가령 B2셀에 2800이 입력되어 있고 TEXT(B2, "\0.00")라고 하면 ‘\2800.00’으로 표시됩니다. 즉 서식을 지정하는 거죠.

요일을 표시하는 경우 Text()함수를 이용하면 다음과 같이 간단히 줄여서 표시할 수 있습니다.

Application.WorksheetFunction.Text(Date(),"ddd")

위의 코딩은 Date()함수를 사용하여 현재 날짜를 구해 Text()함수에 넣어주고 표시형식을 "ddd"로 지정함으로써 Sun,Mon,Tue,Thu,..등등과 같이 영문 요일을 돌려줍니다.

약어가 아닌 전체요일이름을 사용하려면 표시형식문자열에 ‘d’를 하나 더 추가해 "dddd"라고 하면 Sunday,Monday,...와 같이 요일의 전체이름을 돌려주게 됩니다.