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

WeekdayName関数の使い方 ExcelVBA

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

  • 曜日を「月曜日」「火曜日」のように表示したい
  • 帳票や勤務表に曜日を表示したい
  • 曜日判定結果を分かりやすく表示したい

このような場合は、WeekdayName関数を使うことで解決できます。
曜日番号から曜日名を取得できる便利な関数です。

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


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

この記事でできること

  • 曜日名を取得できる
  • 日付から曜日を表示できる
  • 帳票やスケジュール表に活用できる

WeekdayName関数とは?

WeekdayName関数は、曜日番号(1~7)を曜日名へ変換する関数です。

例えば、


1 → 日曜日
2 → 月曜日
3 → 火曜日

のように変換できます。


基本:WeekdayName関数の使い方

基本構文はこちらです。

WeekdayName(曜日番号)

基本例

MsgBox WeekdayName(2)

→ 月曜日


今日の曜日を表示する

Weekday関数と組み合わせるのが一般的です。

MsgBox WeekdayName(Weekday(Date))

→ 今日の曜日


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

Dim youbi As String

youbi = WeekdayName(Weekday(Range("A1").Value))

MsgBox youbi

曜日をセルへ表示する

Range("B1").Value = WeekdayName(Weekday(Range("A1").Value))

A1の日付から曜日を取得し、B1へ表示します。


曜日を短縮表示する

第2引数に True を指定します。

MsgBox WeekdayName(2, True)

→ 月


曜日開始を月曜日にする

第3引数で開始曜日を指定できます。

MsgBox WeekdayName(1, False, vbMonday)

→ 月曜日


構文(完全版)

WeekdayName(曜日番号, [省略形], [開始曜日])
引数内容
曜日番号1~7
省略形True:短縮表示
開始曜日週の開始曜日

勤務表作成で使う

Dim dt As Date

dt = Date

Range("A1").Value = dt
Range("B1").Value = WeekdayName(Weekday(dt))

日付と曜日を同時に表示できます。


曜日ごとの色分けに使う

If Weekday(Date) = vbSunday Then

    Range("A1").Interior.Color = RGB(255, 200, 200)

End If

Weekday関数との違い

関数戻り値
Weekday曜日番号
WeekdayName曜日名

Weekday

MsgBox Weekday(Date)

→ 1~7

WeekdayName

MsgBox WeekdayName(Weekday(Date))

→ 日曜日~土曜日


実務での活用例

  • 勤務表作成
  • 営業日管理
  • スケジュール表作成
  • 帳票出力

日付処理では非常によく利用されます。


注意点

① 日付を直接渡せない

曜日番号が必要です。

WeekdayName(Weekday(Date))

② 開始曜日設定に注意

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


③ 表示名は環境依存の場合がある

Windowsの地域設定に影響されることがあります。


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

Dim dt As Variant

dt = Range("A1").Value

If IsDate(dt) Then

    MsgBox WeekdayName(Weekday(dt))

Else

    MsgBox "日付ではありません"

End If

よくあるエラーと対処法

① 型が一致しません

日付ではなく曜日番号を渡しているか確認してください。

② 曜日が違う

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

③ 短縮表示にならない

第2引数にTrueを指定してください。

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

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


まとめ

  • WeekdayNameは曜日名を取得する関数
  • Weekday関数と組み合わせて使う
  • 短縮表示にも対応している
  • 勤務表や帳票作成で活躍する

WeekdayName関数を使いこなせるようになると、日付データをより見やすく表示できるようになります。
実務でも利用頻度が高いため、ぜひマスターしておきましょう。

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

コメント

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