メインコンテンツへスキップ
VBAで日付の曜日を取得する

VBAで日付の曜日を取得する

·2 分
Programming VBA
かずさプログラマー
著者
かずさプログラマー
業務の作業自動化を行っています。Go、VBA、Pythonを主に使用しています。過去にはC#、VB.Net、JavaScriptも使用していました。

VBAで日付から曜日を取得するにはWeekday関数を使用します。

コードは以下になります。

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を日付として認識できるか確認しています。

日付として認識できないときは、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(“あ”) → 日付として認識できない

関連記事

VBAで指定時間だけ処理を止める
·2 分
Programming VBA
VBAで文字列にスペースが含まれているか判断する
··2 分
Programming VBA
VBAで文字列に全角が含まれているか判断する
·2 分
Programming VBA