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