Excel VBAの「WeekdayName 関数」について解説します。
WeekdayName 関数とは
Excel VBA の WeekdayName 関数は、指定された曜日を表す文字列を返します。
では、WeekdayName 関数の構文や引数の設定と実際の使い方について具体的に解説していきたいと思います。
WeekdayName 関数(Visual Basic for Applications リファレンス)
構文(引数と戻り値)
Excel VBAの関数を使いこなすには、関数の構文を正しく理解しておくことが重要です。
構文
Weekday(weekday[, abbreviate][, firstdayweek])
引数
引数 | 説明 |
---|---|
weekday | 【必須】曜日を示す数値を指定します ※ 引数 firstdayofweek の設定値によって異なります |
abbreviate | 【省略可能】曜日を省略するかどうか指定します ※ 曜日を省略するときは True を指定します ※ 既定は False(曜日を省略しない)です |
firstdayweek | 【省略可能】週の開始曜日を定数(値)で指定します ※ 省略時の規定は、日曜日です |
引数 firstdayofweek に指定できる定数(値)
定数 | 値 | 内容 |
---|---|---|
vbUseSystem | 0 | 各国語サポート(NLS)API設定を使用 |
vbSunday | 1 | 日曜(既定値) |
vbMonday | 2 | 月曜 |
vbTuesday | 3 | 火曜 |
vbWednesday | 4 | 水曜 |
vbThursday | 5 | 木曜 |
vbFriday | 6 | 金曜 |
vbSaturday | 7 | 土曜 |
戻り値
戻り値 | 説明 |
---|---|
曜日を表す文字列 | 1 から 7 までに対応する曜日名を返します |
引数 firstdayofweek に指定がある場合は、指定された曜日が起点の「1」となり、引数 Weekday の値に対応する曜日名が返されます。
↓定数(or値) / Weekdayの値→ | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
---|---|---|---|---|---|---|---|
vbSunday(1) 【既定】 | 日 | 月 | 火 | 水 | 木 | 金 | 土 |
vbMonday(2) | 月 | 火 | 水 | 木 | 金 | 土 | 日 |
vbTuesday(3) | 火 | 水 | 木 | 金 | 土 | 日 | 月 |
vbWednesday(4) | 水 | 木 | 金 | 土 | 日 | 月 | 火 |
VbThursday(5) | 木 | 金 | 土 | 日 | 月 | 火 | 水 |
VbFriday(6) | 金 | 土 | 日 | 月 | 火 | 水 | 木 |
VbSaturday(7) | 土 | 日 | 月 | 火 | 水 | 木 | 金 |
解説(使用例)
WeekdayName 関数のサンプルコードを使って解説します。
WeekdayName 関数の引数と戻り値を確認するサンプル
WeekdayName 関数の引数と戻り値を MagBox で表示して確認するサンプルです。
※ エラー処理等は省略していますのでご了承ください。
'■WeekdayName関数サンプル
Sub WeekdayName_Sample()
'必要な変数を宣言
Dim s As Date '日付用
Dim i As Integer '週起点用
Dim b As Boolean '「曜日」表示省略用
Dim id As Integer 'Weekday関数の結果用
'InputBoxで日付を入力(Defaultは本日)
s = InputBox("日付を入力してください(yyyy/mm/dd)", , Date)
'InputBoxで曜日の起点を入力(Defaultは[1])
i = InputBox("曜日の起点を1-7の数字で入力してください" & _
vbCrLf & "日=1,月=2,火=3,水=4,木=5,金=6,土=7", , 1)
'InputBoxで「曜日」を省略するかどうか(Defaultは[0])
b = InputBox("曜日を省略する場合「1」を入力します" & _
vbCrLf & "省略しない場合は「0」です", , 0)
'Weekday関数で週番号を取得して変数に入力
id = Weekday(s, i)
'MsgBoxで結果を表示する
MsgBox "WeekdayName(" & id & ", " & b & ", " & i & ")" & _
vbCrLf & "の結果は、「" & WeekdayName(id, b, i) & "」です"
End Sub
引数 Weekday の値(曜日を示す数値)は Weekday 関数 を使って取得する設定です。
では、コードの実行順に表示される画像を順番に見ていきましょう。
10行目の InputBox で指定日付を入力させます。デフォルトで当日を表示するように設定しています。
![WeekdayName_Sample InputBox1](https://www.kurumico.com/wp-content/uploads/2024/07/vba-weekdayname-02.jpg)
13行目の InputBox では曜日の起点 firstdayofweek を設定します。デフォルトで「1」を表示しています。
![WeekdayName_Sample InputBox2](https://www.kurumico.com/wp-content/uploads/2024/07/vba-weekdayname-03.jpg)
17行目の InputBox は戻り値の「曜日」の文字列を省略するかを設定します。デフォルトで省略しない「0」を表示しています。
![WeekdayName_Sample InputBox3](https://www.kurumico.com/wp-content/uploads/2024/07/vba-weekdayname-04.jpg)
21行目の id = Weekday(s, i) は Weekday 関数 を使って曜日を表す整数を取得して変数に代入しています。
23~24行目の設定で実行結果を MsgBox に表示するようにしています。
![Weekday_Sample 実行結果のMsgBox画像](https://www.kurumico.com/wp-content/uploads/2024/07/vba-weekdayname-05.jpg)
「曜日」を省略するよう引数 abbreviate に「True」を設定した場合「水」が返ります。
日付・時刻関数の使用例について
Date 関数のほか「日付・時刻」の関数について解説しているこちらの記事もご覧いただければ幸いです。
Timer など覚えておきたい日付時刻の処理について、より詳しい解説記事がこちらです。サンプルコードも複数掲載していますので是非ご覧ください。
おわりに
VBAの関数一覧はこちらからご参照ください。
VBAサンプルファイルダウンロードページのご案内
このページで使用したサンプルファイルの登録はありません(^^;
ページ内のコードをコピーしてご利用ください。
ダウンロードページへのリンクは下のカードクリックでジャンプできます。
よろしければご利用ください!
Excel VBA WeekdayName 関数は、指定された曜日を示す数値に対応する曜日を表す文字列(曜日名)を返します。
Weekday 関数 の解説で使用したサンプルでは、曜日名を表示させるために曜日の配列を用意して対応しましたが、 WeekdayName 関数を使えばその手間は必要なく曜日名を表示させることができます。
以上、この解説が少しでもみなさまのお役に立てたなら幸いです(^^;