教えて!ExcelVBA!

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

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

 構文

構文は以下の通りです。

Weekday(date, [firstdayofweek])

解説

Weekday関数は、指定された日付に対応する曜日を数値で返す関数です。
・date: 曜日を取得したい日付を指定します。日付はDate型、または日付を表す文字列で指定します。
・firstdayofweek(オプション): 曜日の最初の日を指定します。省略するとシステムの設定に従います。具体的な値は次の通りです。
1: 日曜日 (既定値)
2: 月曜日
3: 火曜日
4: 水曜日
5: 木曜日
6: 金曜日
7: 土曜日
関数は指定された日付に対応する曜日を数値で返します。返される数値は、firstdayofweekによって指定された曜日を基準として、以下のようになります。
1: firstdayofweekに指定した曜日
2: firstdayofweekの次の曜日
3: firstdayofweekの次の曜日
...
7: firstdayofweekの前の曜日

使い方

Weekday関数の使い方を説明します。

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