教えて!ExcelVBA!

ExcelVBAの基礎知識・書き方について紹介します。

【ExcelVBA 関数】WeekDay関数の使い方を教えて!

 構文

構文は以下の通りです。

Weekday(日時, [週の開始曜日])

解説

Weekday関数は、指定された日付に対応する曜日を数値で返す関数です。

引数 指定 内容
日時 必須 曜日を取得したい日付を指定します。日付はDate型、または日付を表す文字列で指定します。
週の開始曜日 省略可 曜日の最初の日を指定します。省略するとシステムの設定に従います。設定値を以下で紹介します。

週の開始曜日には以下の設定値が指定できます。

定数 内容
vbSunday 1 日曜日(既定値)
vbMonday 2 月曜日
vbTuesday 3 火曜日
vbWednesday 4 水曜日
vbThursday 5 木曜日
vbFriday 6 金曜日
vbSaturday 7 土曜日

戻り値は以下の通りです。

内容
1 日曜日
2 月曜日
3 火曜日
4 水曜日
5 木曜日
6 金曜日
7 土曜日

使用例

Weekday(#8/24/2021#)

使い方

具体的な使い方を紹介します。

Sub WeekdayExample()
    Dim myDate As Date
    Dim dayOfWeek As Integer
    myDate = DateSerial(2023, 6, 9) ' 曜日を取得したい日付を指定
    dayOfWeek = Weekday(myDate) ' 曜日を取得
    MsgBox "指定された日付の曜日は " & dayOfWeek & " です。"
End Sub

上記のコードでは、myDateに指定した日付の曜日を取得しています。Weekday関数の戻り値であるdayOfWeekには、数値が格納されます。この数値をメッセージボックスで表示しています。

プログラミング例

以下に、プログラミング例を紹介します。

1.曜日を日本語で表示する例

Weekday関数の戻り値は数値ですが、曜日を日本語で表示することも可能です。以下のプログラムでは、Select Case文を使用して曜日を判別し、日本語の曜日をメッセージボックスで表示します。

Sub WeekdayExample()
    Dim myDate As Date
    Dim dayOfWeek As Integer
    Dim dayOfWeekStr As String
    myDate = DateSerial(2023, 6, 9) ' 曜日を取得したい日付を指定
    dayOfWeek = Weekday(myDate) ' 曜日を取得
    Select Case dayOfWeek
        Case 1
            dayOfWeekStr = "日曜日"
        Case 2
            dayOfWeekStr = "月曜日"
        Case 3
            dayOfWeekStr = "火曜日"
        Case 4
            dayOfWeekStr = "水曜日"
        Case 5
            dayOfWeekStr = "木曜日"
        Case 6
            dayOfWeekStr = "金曜日"
        Case 7
            dayOfWeekStr = "土曜日"
    End Select
    MsgBox "指定された日付の曜日は " & dayOfWeekStr & " です。"
End Sub

2.曜日の最初の文字を表示する例

曜日の最初の文字を取得する方法もあります。以下の例では、Weekday関数の戻り値を利用して、曜日の最初の文字を取得して表示します。

Sub WeekdayExample()
    Dim myDate As Date
    Dim dayOfWeek As Integer
    Dim firstLetter As String
    myDate = DateSerial(2023, 6, 9) ' 曜日を取得したい日付を指定
    dayOfWeek = Weekday(myDate)    ' 曜日を取得
    firstLetter = Left(WeekdayName(dayOfWeek), 1)
    MsgBox "指定された日付の曜日の最初の文字は " & firstLetter & " です。"
End Sub

上記のコードでは、WeekdayName関数を使用して曜日の名称を取得し、Left関数を使用して最初の文字を抽出しています。

まとめ

Weekday関数は指定された日付に対応する曜日を数値で返す関数です。Weekday関数を活用することで、日付データを曜日に変換したり、曜日に関連する処理を行ったりすることができます。是非活用してください。