[VBA][Excel]日付から曜日を表示


※全てのExcelで動作する保証はありません。また、内容に関し管理人は全ての責任を負いかねます

サンプル ※説明に必要な部分しか記述していません。

Weekdayは曜日を表す数値が、WeekdayNameは曜日の文字列が戻り値です。それらを使うことで曜日を表示しているサンプルです。

両方同時に使用する時は firstdayofweek(週の始まりの曜日)をそろえる必要があります。また、サンプルでは日曜始まりと月曜始まりの2つのみを取り上げました。

それぞれの関数についての説明はヘルプからの引用です。


Weekday(date, [firstdayofweek])

date は日付を指定、firstdayofweek は週の第1日目の曜日を指定します。戻り値は何曜日であるかを表すバリアント型(内部処理形式 Integer)です

WeekdayName(weekday, abbreviate, firstdayofweek)

weekday は曜日を示す数値を指定します。abbreviate をTrueにすると文字列”曜日”が省略されます。firstdayofweek は週の第1日目の曜日を指定します。戻り値は指定された曜日を表す文字列です


下記を実行すると

Private Sub CommandButton1_Click()

Const c_base_time = "2016/4/14 12:00"

'日曜始まり
Sheet1.Range("A1").Value = WeekdayName(Weekday(c_base_time, vbSunday), True, vbSunday)
Sheet1.Range("A2").Value = WeekdayName(Weekday(c_base_time, vbSunday), False, vbSunday)

'月曜始まり
Sheet1.Range("A3").Value = WeekdayName(Weekday(c_base_time, vbMonday), True, vbMonday)
Sheet1.Range("A4").Value = WeekdayName(Weekday(c_base_time, vbMonday), False, vbMonday)

End Sub

週の始まりが日曜、月曜であっても 2016/4/14 は木曜日なので結果は同じです。

vba-excel-weekdayname