VBAで日付から曜日を取得するにはWeekday関数を使用します。
Weekday関数
コードは以下になります。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
Option Explicit Function getWeekDay(d As String) As String '################################################################################### '日付の曜日を表示します '----------------------------------------------------------------------------------- '引数 :d 文字列の日付 '################################################################################### If IsDate(d) Then Select Case Weekday(d) Case vbSunday getWeekDay = "日曜日" Case vbMonday getWeekDay = "月曜日" Case vbTuesday getWeekDay = "火曜日" Case vbWednesday getWeekDay = "水曜日" Case vbThursday getWeekDay = "木曜日" Case vbFriday getWeekDay = "金曜日" Case vbSaturday getWeekDay = "土曜日" End Select End If End Function Sub test_getWeekDay() MsgBox getWeekDay("2018/7/1") MsgBox getWeekDay("2018/7/12") MsgBox getWeekDay(123456) MsgBox getWeekDay("あ") End 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(“あ”) → 日付として認識できない
コメント