【ExcelVBA・マクロ】MonthNameの使い方|月名(Januaryなど)を取得する方法【コピペOK】

MonthNameの使い方 ExcelVBA

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

  • 「1月」を「January」のように表示したい
  • 月を英語表記にしたい
  • レポート用に見やすくしたい

このような場合は、MonthName関数を使うことで解決できます。
月の数値(1〜12)から月名(英語)を取得できる便利な関数です。

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


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

この記事でできること

  • 月番号から月名を取得できる
  • 英語表記の月を扱える
  • 実務で使える表示方法が分かる

基本:MonthName関数の使い方

基本構文はこちらです。

MonthName(月, [省略形])
  • 月 → 1〜12
  • 省略形 → True(省略)/ False(通常)

例:

MsgBox MonthName(1)

→ January


MonthName関数の特徴

  • 月番号から英語の月名を取得
  • 省略形(Janなど)にも対応

基本例

Dim mName As String

mName = MonthName(5)

MsgBox mName

→ May


省略形で取得する

MsgBox MonthName(5, True)

→ May(短縮形)※Mayは同じですが、他は変わります

MsgBox MonthName(9, True)

→ Sep


Month関数と組み合わせる

現在の月を英語で表示できます。

MsgBox MonthName(Month(Date))

→ 今月の英語表記


セルに表示する

Range("A1").Value = MonthName(Month(Date))

日本語で表示したい場合

MonthNameは英語固定のため、日本語は自作します。

Function GetMonthJP(m As Integer) As String

    Dim arr

    arr = Array("1月", "2月", "3月", "4月", "5月", "6月", _
                "7月", "8月", "9月", "10月", "11月", "12月")

    GetMonthJP = arr(m - 1)

End Function

使用例:

MsgBox GetMonthJP(5)

→ 5月


実務での活用例

  • 英語レポート作成
  • 海外向けデータ表示
  • 月別ラベル作成
  • グラフや資料の見た目改善

特に海外向け資料で活躍します。


注意点

① 1〜12以外はエラー

MonthName(13)

→ エラーになります。

② 英語固定

環境に関係なく英語で返ります。


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

Dim m As Integer

m = Month(Date)

If m >= 1 And m <= 12 Then
    MsgBox MonthName(m)
End If

よくあるエラーと対処法

① 値が範囲外

1〜12の範囲か確認してください。

② 日本語にならない

MonthNameは英語専用です。

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

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


まとめ

  • MonthNameは月名(英語)を取得する関数
  • 省略形にも対応
  • Month関数と組み合わせると便利
  • 英語表示が必要な場面で活躍

MonthName関数を使いこなせるようになると、データ表示の幅が広がります。
特にレポートや資料作成で役立つので、ぜひ活用してみてください。

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

コメント

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