更新日:、 作成日:
VBA WeekdayName 関数:曜日名を取得する
はじめに
Excel VBA マクロの WeekdayName 関数から曜日名を取得する方法を紹介します。
WeekdayName 関数は、指定した曜日の名前を返します。
「Weekday 関数」から取得した曜日の名前を取得します。
WeekdayName(1) なら 日曜日 を返します。
WeekdayName(1, True) なら 日 を返します。
曜日の名前を取得したいときに使用します。
日付から曜日を取得するには「Weekday 関数」を使用します。
WeekdayName 関数の引数と戻り値
WeekdayName(曜日)
1 (日曜日) ~ 7 (土曜日) の曜日の名前を取得します。
WeekdayName(曜日, 曜日名の省略, 最初の曜日)
曜日名の省略をするか指定できます。週の最初の曜日を指定できます。
引数「曜日」 | Weekday 関数で取得した値を指定します。 |
引数「曜日名の省略」 | 省略できます。 True: 曜日名を省略する。 False または省略: 曜日名を省略しない。 |
引数「最初の曜日」 | 省略できます。週の最初の曜日を何曜日にするか指定します。 |
戻り値の型 | 文字列型 (String) |
引数「最初の曜日」
曜日 | 説明 |
vbSunday (既定) | 日曜日を 1 とする。 |
vbMonday | 月曜日を 1 とする。 |
vbTuesday | 火曜日を 1 とする。 |
vbWednesday | 水曜日を 1 とする。 |
vbThursday | 木曜日を 1 とする。 |
vbFriday | 金曜日を 1 とする。 |
vbSaturday | 土曜日を 1 とする。 |
スポンサーリンク
解説
引数「曜日」には「Weekday 関数」で取得した値を指定します。
引数「曜日」に 1 ~ 7 以外の値を指定すると「エラー 5 プロシージャの呼び出し、または引数が不正です。」が発生します。
引数「曜日名の省略」を省略するか False なら、日曜日 の形式で返します。
引数「曜日名の省略」が True なら、日 の形式で返します。
引数「最初の曜日」には「Weekday 関数」の引数「最初の曜日」と同じ値を指定します。
結果を英語で取得するには「Format 関数」を使用します。
日曜日 や 日 以外の形式で取得するには「Choose 関数」を使用します。
使用例
WeekdayName 関数の使用例を紹介します。
曜日名を取得する
曜日名を取得します。
Dim s As String
Dim i As Integer
i = Weekday("2017/1/1")
s = WeekdayName(i)
Debug.Print(s) ' 日曜日
s = WeekdayName(i, False)
Debug.Print(s) ' 日曜日
s = WeekdayName(i, True)
Debug.Print(s) ' 日
i = Weekday("2017/1/2")
s = WeekdayName(i)
Debug.Print(s) ' 月曜日
i = Weekday("2017/1/1", vbSunday)
s = WeekdayName(i, False, vbSunday) ' 1 が日曜日
Debug.Print(s) ' 日曜日
i = Weekday("2017/1/1", vbMonday)
s = WeekdayName(i, False, vbMonday) ' 1 が月曜日
Debug.Print(s) ' 日曜日
' Weekday と WeekdayName の最初の曜日が違うため結果がずれます。
i = Weekday("2017/1/1", vbSunday)
s = WeekdayName(i, False, vbMonday)
Debug.Print(s) ' 月曜日
曜日を英語で取得する
「Format 関数」を使用して、曜日を英語で取得できます。
Dim s As String
s = Format("2017/1/1", "ddd")
Debug.Print(s) ' Sun
s = Format("2017/1/1", "dddd")
Debug.Print(s) ' Sunday
s = Format("2017/1/1", "aaa")
Debug.Print(s) ' 日
s = Format("2017/1/1", "aaaa")
Debug.Print(s) ' 日曜日
好きな名前で取得する
「Choose 関数」を使用して、曜日を好きな名前で取得できます。
Dim s As String
Dim i As Integer
i = Weekday("2017/1/1")
s = Choose(i, "日曜日", "月曜日", "火曜日", "水曜日", "木曜日", "金曜日", "土曜日")
Debug.Print(s) ' 日曜日
i = Weekday("2017/1/1")
s = Choose(i, "にち", "げつ", "か", "すい", "もく", "きん", "ど")
Debug.Print(s) ' にち
スポンサーリンク