まさ工房

ExcelVBAとAcessDBを利用した業務支援ツールを作成する工房です

【Excelマクロ・VBA】指定した日付から曜日を判定するWeekDay関数の使い方を教えて!

       f:id:m_kbou:20190612132421p:plain

WeekDay関数は、指定した日付に対し曜日を数値で返します。使い方について説明します。

 

【目次】

 

構文

WeekDay関数の記述方法は、以下の通りとなります。

=======================================================================

WeekDay(”[日付]

=======================================================================

[説明]:

[日付]には、曜日を判定するための日付を指定します。曜日は数値として値が返されます。値に対する曜日は以下一覧内容となります。内容を纏めると、「[日付]で指定した日付が何曜日になるか値を返して下さい。」との意味になります。

f:id:m_kbou:20190612132510p:plain

[記述例]:

Weekday("2019/6/12")

 

使い方

使い方について、具体的に説明していきます。

基本的な使い方

指定日に対して曜日を数値で返す方法について説明します。

[記述例]:

※以下の記述例は、VBE(VBA記述画面)に記述しないと実行ができません。VBEの開き方については、VBEの開き方を参考にして下さい。

-------------------------------------------------

Sub サンプル()
    MsgBox Weekday("2019/6/12")
End Sub

-------------------------------------------------

内容は、「指定日:2019/6/12の曜日を数値で返し、MsgBoxで表示して下さい。」との意味になります。

[実行例]:

結果は、対象日が水曜日となるため、「4」がMsgBoxに表示されます。

f:id:m_kbou:20190612132439p:plain

基本的な使い方のついての説明は以上です。

 

返された値(数値)を曜日(文字)に変換

指定日に対して返された値をSelect文で曜日に変換する方法について説明します。

[記述例]:

※以下の記述例は、VBE(VBA記述画面)に記述しないと実行ができません。VBEの開き方については、VBEの開き方を参考にして下さい。

-------------------------------------------------

Sub サンプル()
    Select Case Weekday("2019/6/12")
        Case 1
            MsgBox "日曜日です。"
        Case 2
            MsgBox "月曜日です。"
        Case 3
            MsgBox "火曜日です。"
        Case 4
            MsgBox "水曜日です。"
        Case 5
            MsgBox "木曜日です。"
        Case 6
            MsgBox "金曜日です。"
        Case 7
            MsgBox "土曜日です。"
    End Select
End Sub

-------------------------------------------------

内容は、「指定日:2019/6/12で返された曜日の数値を、Select文で曜日(文字)に変換してMsgBoxで表示して下さい。」との意味になります。

[実行例]:

結果は、対象日が水曜日となるため、「水曜日です。」がMsgBoxに表示されます。

f:id:m_kbou:20190612132453p:plain

返された値を曜日に変換する方法についての説明は以上です。

 

おわりに

今回は、WeekDay関数の使い方について説明しました。基本的には曜日を数値で返しますが、実際には曜日を文字で表示しないとユーザの使い勝手が悪くなります。プログラム中で使用する場合とユーザへ表示する場合とでは、状況により表示方法を変えて使用して下さい。