MonthName関数:1から12の数値から月の名前を文字列で取得するExcel VBA関数
MonthNameとは、引数の数値から月の名前に変換し文字列で返す関数です。
引数に1から12の範囲外の数値を指定した場合はエラーになります。
構文: MonthName( Month , Abbreviate )
Month : 月の数値を1から12で指定します。
Abbreviate : Trueを指定すると「月」の文字が省略されます。デフォルトはFalseです。
MonthName関数のVBA使用例
今日の月を指定し、月名をB2セルに表示するVBAです。
・今日の月は、Month(Now)で取得しています。
Sub MyMonthName()
Range("B2") = MonthName(Month(Now))
End Sub
実行すると、月名が表示されます。
文字列で返るので、左揃えになっています。
Abbreviateの引数をTrueにした場合
引数AbbreviateのデフォルトはFalseなので、上では指定しませんでしたが、ここではTrueを指定します。
Sub MyMonthName()
Range("B2") = MonthName(Month(Now), True)
End Sub
「月」の文字が省略されました。
文字列で返りますが、Excelが自動的に数値にしています。
MonthNameでエラーになる場合
引数Monthに1から12でない、13を指定すると「実行時エラー:5 プロシージャの呼び出し、または引数が不正です。」
とエラーが表示されます。
MonthNameの応用例
For Nextのループを使用し、1月から12月を表示させるVBAです。
・Cells(i + 1, 2)で、下の行に移動させています。
Sub MyMonthName()
Dim i As Long
For i = 1 To 12
Cells(i + 1, 2) = MonthName(i)
Next
End Sub
実行結果です。
B2セルから下の行に、1月から12月の文字列が表示できました。