VBAで日付の曜日を取得する
概要
VBAで日付から曜日を取得するにはWeekday関数を使用します。
Weekday関数
コードは以下になります。
1Option Explicit
2Function getWeekDay(d As String) As String
3'###################################################################################
4'日付の曜日を表示します
5'-----------------------------------------------------------------------------------
6'引数 :d 文字列の日付
7'###################################################################################
8
9 If IsDate(d) Then
10 Select Case Weekday(d)
11 Case vbSunday
12 getWeekDay = "日曜日"
13 Case vbMonday
14 getWeekDay = "月曜日"
15 Case vbTuesday
16 getWeekDay = "火曜日"
17 Case vbWednesday
18 getWeekDay = "水曜日"
19 Case vbThursday
20 getWeekDay = "木曜日"
21 Case vbFriday
22 getWeekDay = "金曜日"
23 Case vbSaturday
24 getWeekDay = "土曜日"
25 End Select
26 End If
27
28End Function
29
30Sub test_getWeekDay()
31
32 MsgBox getWeekDay("2018/7/1")
33 MsgBox getWeekDay("2018/7/12")
34 MsgBox getWeekDay(123456)
35 MsgBox getWeekDay("あ")
36
37End Sub
Weekday関数を使用する前に、IsDate関数を使用して
引数dを日付として認識できるか確認しています。
IsDate関数
日付として認識できないときは、Weekday関数で処理を行いません。
引数dを日付として認識できるときは、Weekday関数を使用します。
Weekday関数に日付を渡すと以下の値が返されます。
定数 | 値 | 説明 |
---|---|---|
vbSunday | 1 | 日曜日 |
vbMonday | 2 | 月曜日 |
vbTuesday | 3 | 火曜日 |
vbWednesday | 4 | 水曜日 |
vbThursday | 5 | 木曜日 |
vbFriday | 6 | 金曜日 |
vbSaturday | 7 | 土曜日 |
返された数値をCase文で条件分岐し、処理しています。
getWeekDay(“2018/7/1”) → 1 → 日曜日

getWeekDay(“2018/7/12”) → 5 → 木曜日

getWeekDay(123456) → 日付として認識できない
getWeekDay(“あ”) → 日付として認識できない