【ExcelVBA・マクロ】Weekday関数の使い方|曜日を数値で取得する方法【コピペOK】

Weekday関数の使い方 ExcelVBA

VBAで日付を扱っていると、次のようなことはありませんか?

  • 日付から曜日を取得したい
  • 土日を判定したい
  • 曜日ごとに処理を分けたい

このような場合は、Weekday関数を使うことで解決できます。
指定した日付の曜日を数値で取得できる便利な関数です。

この記事では、Weekday関数の基本から実務での活用方法まで分かりやすく解説します。


スポンサーリンク
スポンサーリンク

この記事でできること

  • 曜日を取得できる
  • 土日判定ができる
  • 曜日別の処理ができる

Weekday関数とは?

Weekday関数は、日付から曜日を数値で取得する関数です。

デフォルトでは次の値が返されます。

戻り値曜日
1日曜日
2月曜日
3火曜日
4水曜日
5木曜日
6金曜日
7土曜日

基本:Weekday関数の使い方

基本構文はこちらです。

Weekday(日付)

基本例

MsgBox Weekday("2025/01/01")

→ 4(水曜日)


今日の曜日を取得する

MsgBox Weekday(Date)

今日の曜日番号を取得できます。


セルの日付から曜日を取得する

Dim wk As Integer

wk = Weekday(Range("A1").Value)

MsgBox wk

曜日名を表示する

WeekdayName関数と組み合わせます。

MsgBox WeekdayName(Weekday(Date))

→ 月曜日 など


土日判定を行う

Dim wk As Integer

wk = Weekday(Date)

If wk = vbSaturday Or wk = vbSunday Then
    MsgBox "休日です"
End If

平日のみ処理する

Dim wk As Integer

wk = Weekday(Date)

If wk >= vbMonday And wk <= vbFriday Then
    MsgBox "平日です"
End If

開始曜日を変更する

第2引数で週の開始曜日を指定できます。

Weekday(Date, vbMonday)

この場合は月曜日が1になります。


曜日開始設定一覧

定数開始曜日
vbSunday日曜日
vbMonday月曜日
vbTuesday火曜日
vbWednesday水曜日
vbThursday木曜日
vbFriday金曜日
vbSaturday土曜日

曜日ごとに処理を分ける

Select Case Weekday(Date)

    Case vbSunday
        MsgBox "日曜日"

    Case vbMonday
        MsgBox "月曜日"

    Case vbTuesday
        MsgBox "火曜日"

End Select

実務での活用例

  • 営業日判定
  • 休日処理
  • 勤務表作成
  • スケジュール管理

日付処理では非常によく使われる関数です。


注意点

① 戻り値は曜日名ではない

数値が返されます。

MsgBox Weekday(Date)

→ 1~7


② 日付型である必要がある

無効な日付はエラーになります。


③ 開始曜日に注意

第2引数によって結果が変わります。


安全な書き方(おすすめ)

Dim dt As Variant

dt = Range("A1").Value

If IsDate(dt) Then
    MsgBox Weekday(dt)
Else
    MsgBox "日付ではありません"
End If

よくあるエラーと対処法

① 型が一致しません

日付として認識できない値の可能性があります。

② 曜日が合わない

開始曜日の設定を確認してください。

③ 曜日名が欲しい

WeekdayName関数を使用してください。

④ コードは正しいのにエラーになる

コピー時に全角文字や特殊文字が混ざることがあります。
その場合は該当行を手入力し直すと解決することがあります。


まとめ

  • Weekdayは曜日を数値で取得する関数
  • 土日判定や営業日判定で活躍
  • WeekdayNameと組み合わせると便利
  • 日付処理では頻出の関数

Weekday関数を使いこなせるようになると、曜日に応じた処理を簡単に作成できるようになります。
実務でも使用頻度が高い関数なので、ぜひマスターしておきましょう。

スポンサーリンク
スポンサーリンク
ExcelVBA
いがぴをフォローする

コメント

タイトルとURLをコピーしました