WeekdayName関数:曜日を表す数値から曜日名を取得する
WeekdayName 関数は Excel VBA で用意されている関数の一つで、引数に指定した曜日を表す数値から日曜日や月曜日などの曜日名の文字列を取得します。ここでは Excel VBA における WeekdayName 関数の使い方について解説します。
(Last modified: )
WeekdayName関数の定義と使い方
WeekdayName
関数は引数に指定した曜日を表す数値から曜日名の文字列を取得します。
1 番目の引数に対象となる曜日を表す数値を指定します。戻り値として対応する曜日名の文字列を取得します。デフォルトの週の最初の曜日が日曜日の場合、数値に対応する曜日名は次のようになっています。
定数 | 値 | 説明 |
---|---|---|
vbSunday | 1 | 日曜日 |
vbMonday | 2 | 月曜日 |
vbTuesday | 3 | 火曜日 |
vbWednesday | 4 | 水曜日 |
vbThursday | 5 | 木曜日 |
vbFriday | 6 | 金曜日 |
vbSaturday | 7 | 土曜日 |
例えば引数が 2 または vbMonday
だった場合、 WeekdayName
関数は "火曜日" を返します。
曜日を表す数値は日付のデータから Weekday
関数を使うことで取得することができます。(詳しくは「Weekday関数:日付の値から曜日を取得する」を参照されてください)。
次の例を見てください。
Debug.Print WeekdayName(Weekday("2013/08/16")) '金曜日 Debug.Print WeekdayName(Weekday("1998/12/5")) '土曜日
Weekday
関数を使って引数に指定した日付の曜日を表す数値は 6 と 7 を取得することができるので、今度は WeekdayName
関数を使って、その曜日を表す数値に対する曜日名として "金曜日" と "土曜日" をそれぞれ取得してイミディエイトウィンドウに表示します。
曜日名を省略系で取得する
省略可能な 2 番目の引数に「True」を設定すると、取得する曜日名が "日" "月" など省略系となります。デフォルトの値である「False」を設定した場合は、取得する曜日名は "日曜日" "月曜日" などになります。
次の例を見てください。
Debug.Print WeekdayName(Weekday("2013/08/16"), True) '金 Debug.Print WeekdayName(Weekday("1998/12/5"), True) '土
WeekdayName
関数の 2 番目の引数に「True」を設定しているので、取得する曜日が省略系となっています。
週の最初の曜日を設定する
なお省略可能な 3 番目の引数で週の最初の曜日を設定することができます。設定する値は次のいずれかです。
定数 | 値 | 説明 |
---|---|---|
vbUseSystem | 0 | NLS API 設定を使用します |
vbSunday | 1 | 日曜日 |
vbMonday | 2 | 月曜日 |
vbTuesday | 3 | 火曜日 |
vbWednesday | 4 | 水曜日 |
vbThursday | 5 | 木曜日 |
vbFriday | 6 | 金曜日 |
vbSaturday | 7 | 土曜日 |
デフォルトの値は日曜日です。これは日曜日が 1 で土曜日が 7 で終わるように曜日の数値が設定されている場合です。例えば月曜日が 1 で 日曜日が 7 で終わるような形で曜日の数値が割り当てられているような環境で WeekdayName
関数を使用したい場合は、 3 番目の引数に 2 または vbMonday
を指定してください。
次の例を見てください。
Debug.Print WeekdayName(Weekday("2013/08/16")) '金曜日 Debug.Print WeekdayName(Weekday("2013/08/16", vbMonday), False, vbMonday) '金曜日
最初のサンプルは週の開始を日曜日として曜日に対する数値を取得し、その数値から週の開始を日曜日として曜日名を取得しています。次のサンプルは週の開始を月曜日として曜日に対するする値を取得し、その数値から週の開始を月曜日として曜日名を取得しています。結果として同じ日付からは同じ曜日名が取得できます。
曜日の数値がどのように割り当てられているかにあわせて、必要であれば設定を行ってください。
それでは簡単なサンプルを作成して試してみます。
Option Explicit Sub WeekdayName関数() Dim i As Integer For i = 3 To 6 Cells(i, 3).Value = Weekday(Cells(i, 2).Value) Cells(i, 4).Value = WeekdayName(Weekday(Cells(i, 2).Value)) Next i End Sub
このプログラムを実行すると Weekday
関数を使って B3 セルから B6 セルに入力された日付に関する値から曜日を表す数値を取得し C3 セルから C6 セルに代入します。また WeekdayName
関数を使って曜日を表す数値から曜日の曜日名を取得し D3 セルから D6 セルに代入します。
-- --
Excel VBA における WeekdayName 関数の使い方について解説しました。
( Written by Tatsuo Ikura )
著者 / TATSUO IKURA
これから IT 関連の知識を学ばれる方を対象に、色々な言語でのプログラミング方法や関連する技術、開発環境構築などに関する解説サイトを運営しています。