概要

WeekdayName関数は、Excel VBAで曜日を示す数値から対応する曜日名を取得するための関数です。例えば、数値1は「日曜日」、数値2は「月曜日」といった具合に、数値を曜日名に変換して返します。WeekdayName関数は、数値だけでなく省略形や言語設定もカスタマイズできるため、曜日名の表示形式を柔軟に指定できます。

構文

WeekdayName(曜日の数値, [省略設定], [言語設定])

パラメータ

  • 曜日の数値

    曜日を示す数値(1から7の範囲)を指定します。通常、1は日曜日、2は月曜日という順序です。

  • 省略設定(省略可能)

    曜日名を省略形で返すかを指定します。省略形を希望する場合はTrue、フルスペルを希望する場合はFalseです。省略するとデフォルトでFalseになります。

  • 言語設定(省略可能)

    曜日名の表示に使用する言語の数値を指定します。通常、日本語であれば省略するか、0を指定します。

戻り値

指定された曜日の数値に対応する曜日名(文字列)を返します。

使用例

基本的な使用例 - 曜日名の取得

Sub ExampleWeekdayName()
    Dim dayName As String

    dayName = WeekdayName(1)  ' 日曜日

    MsgBox dayName  ' 結果: "日曜日"
End Sub

この例では、WeekdayName関数を使用して1(通常は日曜日)の曜日名を取得し、メッセージボックスで表示しています。

省略形の曜日名を取得

Sub GetAbbreviatedWeekdayName()
    Dim dayName As String

    dayName = WeekdayName(2, True)  ' 月曜日の省略形

    MsgBox dayName  ' 結果: "月"
End Sub

この例では、WeekdayName関数を使用して2(月曜日)の省略形を取得しています。省略設定をTrueにすることで、短い形式で曜日名が表示されます。

曜日を数値から名前に変換する

Sub ConvertNumberToWeekdayName()
    Dim i As Integer

    For i = 1 To 7
        Debug.Print "数値" & i & "は" & WeekdayName(i) & "です。"
    Next i
End Sub

この例では、1から7までの数値を曜日名に変換し、デバッグウィンドウに出力しています。それぞれの数値が対応する曜日名を示します。

使用場面と注意点

  • 曜日の表示

    日付やスケジュールに曜日名を追加したい場合に使用します。ユーザーにとってわかりやすい表示を提供するために役立ちます。

  • 国際化対応

    言語設定により、異なる言語の曜日名を取得することが可能です。グローバル対応のアプリケーションで多言語表示を行う際に便利です。

  • 注意点

    数値が1から7の範囲外である場合、関数はエラーとなるため、数値の範囲を確認してから使用することが重要です。

応用例 - 日付から曜日名を取得して表示

Sub DisplayWeekdayNameFromDate()
    Dim dt As Date
    Dim dayNum As Integer
    Dim dayName As String

    dt = Date  ' 今日の日付
    dayNum = Weekday(dt, vbSunday)  ' 今日の曜日を取得(1: 日曜日)
    dayName = WeekdayName(dayNum)   ' 曜日名に変換

    MsgBox "今日は" & dayName & "です。"  ' 結果例: "今日は月曜日です。"
End Sub

この例では、現在の日付から曜日を取得し、その曜日の名前を表示しています。Weekday関数で数値の曜日を取得し、WeekdayName関数で対応する曜日名に変換する流れです。

まとめ

WeekdayName関数は、曜日を示す数値から対応する曜日名を簡単に取得できる非常に便利な関数です。表示形式を省略形に変更したり、多言語対応した曜日名の取得が可能なため、幅広い場面で活用できます。日付データを扱う際に、ユーザーにとって理解しやすい曜日名の表示が求められる場合に重宝するでしょう。