はじめに
今回は、日付から曜日を取得する方法について解説します。
月曜日 などの文字列を取得する方法や、土日を判定する方法など、汎用的なサンプルコードも掲載しています。
是非最後までお付き合いください。
この記事を読むメリット
- 日付から曜日を取得する方法が分かります。
- 「月曜日」や「月」など、様々な変換バリエーションを紹介しています。
- コピペで使える実践的なサンプルコードを掲載しています。
基本情報
Weekday関数
日付から「曜日を表す数値」を取得するには、Weekday関数を使用します。
Weekday関数では、日曜日は「1」、月曜日は「2」のような数値が戻ります。
構文
Weekday(Date)
引数
Date … Date型の日付を指定します。
戻り値
戻り値として、引数に指定した日付から「曜日を表す数値」を返却します。
これらの数値は、定数と連動しているため、併せてご紹介します。
# | 戻り値 | 定数 | 説明 |
---|---|---|---|
1 | 1 | vbSunday | 日曜日 |
2 | 2 | vbMonday | 月曜日 |
3 | 3 | vbTuesday | 火曜日 |
4 | 4 | vbWednesday | 水曜日 |
5 | 5 | VbThursday | 木曜日 |
6 | 6 | VbFriday | 金曜日 |
7 | 7 | VbSaturday | 土曜日 |
WeekdayName関数
「曜日を表す文字列」を取得するには、Weekday関数を使用します。
「曜日を表す整数値」を引数として、「月曜日」や「水」などの文字列を取得することが出来ます。
構文
Weekday(Weekday, Abbreviate)
引数
# | 引数 | 必須/任意 | 説明 |
---|---|---|---|
1 | Weekday | 必須 | Weekday関数で取得できる、「曜日を表す整数値」を指定します。 |
2 | Abbreviate | 任意 | Trueを指定した場合、「月」などの省略された曜日の文字列が返却されます。 Falseを指定した場合、「月曜日」などの曜日の文字列が返却されます。 ※引数を省略した場合、Falseを指定したものと同様の挙動となります。 |
サンプルコード
曜日の文字列を書き出す
サンプルコード
Public Sub writeWeekDay()
Dim dateVal As Date ' 日付データ
Dim currentRowIndex As Integer ' カレント行Index
Dim endRowIdex As Integer ' 最終行Index
' 最終行取得
endRowIdex = ActiveSheet.UsedRange.Rows.Count
For currentRowIndex = 2 To endRowIdex
' 日付データを取得
dateVal = Cells(currentRowIndex, 2).Value
' セルへの書き出し
Cells(currentRowIndex, 3).Value = WeekdayName(Weekday(dateVal)) ' 曜日
Cells(currentRowIndex, 4).Value = WeekdayName(Weekday(dateVal), True) ' 曜日(短縮)
Next currentRowIndex
End Sub
実行結果(クリックで拡大)
土日の場合は処理を終了する
サンプルコード
Public Sub execBizDay()
Dim weekNum As Byte ' 曜日(数値)
' 現在の曜日(数値)を取得する
weekNum = Weekday(Date)
If weekNum = vbSaturday Or weekNum = vbSunday Then
' 土日の場合
Exit Sub
End If
' ... コードを記載
End Sub
最後に
今回は、日付から曜日を取得する方法について解説しました。
セルに書き出す時には文字列を取得し、プログラム上で判定に使用するのであれば数値で取得するのが良いと思います。
用途によって、使い分けていきましょう。
本記事が、皆さんのお力になれば幸いです!
コメント