Excel VBAの「MonthName 関数」について解説します。
MonthName 関数とは
Excel VBA の MonthName 関数は、指定された数値に対応する月の名前を文字列で返します。
1~12 の範囲の数値を引数として受け取り、対応する月を表す文字列を返します。月名を表示するかどうかをオプションで指定できます。
では、MonthName 関数の構文や引数の設定と実際の使い方について具体的に解説していきたいと思います。
MonthName 関数(Visual Basic for Applications リファレンス)
構文(引数と戻り値)
Excel VBAの関数を使いこなすには、関数の構文を正しく理解しておくことが重要です。
構文
MonthName(month[, abbreviate])
引数
引数 | 説明 |
---|---|
month | 【必須】月を示す数値を 1 から 12 の範囲で指定します |
abbreviate | 【省略可能】 月名を省略するかどうか Boolean値で指定します ※ 月名を省略するときは True を指定します ※ 既定は False(月名を省略しない)です |
戻り値
戻り値 | 説明 |
---|---|
月を表す文字列 | 対応する 1 月から 12 月までの月名を返します |
MonthName 関数は、日本語環境と英語環境で挙動が異なります。
「8月」を例にした場合、引数 abbreviate の設定による違いは以下のとおりです。
【日本語環境】True のときは「月」が省略され「8」を返します。False なら「8月」が返ります。
【英語環境】True のときは省略され「Aug」を返します。False は「August」が返ります。
解説(使用例)
MonthName 関数のサンプルコードを使って解説します。
MonthName 関数の引数と戻り値を確認するサンプル
MonthName 関数の引数と戻り値をイミディエイトに表示して確認するサンプルです。
'■MonthName関数の引数設定を確認するサンプル
Sub MonthName_Sample()
On Error GoTo ErrH
'数値から月名を取得
Debug.Print MonthName(8, False) & " ← MonthName(8, False)"
Debug.Print MonthName(8) & " ← MonthName(8)'False省略"
Debug.Print MonthName(8, True) & " ← MonthName(8, True)"
'現在の月を関数で取得
Debug.Print MonthName(Month(Now)) & " ← MonthName(Month(Now))"
'1~12以外の数値を指定
Debug.Print MonthName(-1) & " ← MonthName(-1)"
Debug.Print MonthName(13) & " ← MonthName(13)"
'文字列の算数字で指定
Debug.Print MonthName("8") & " ← MonthName(" & """8""" & ")"
'数値以外の文字列を指定
Debug.Print MonthName("はち") & " ← MonthName(" & """はち""" & ")"
Exit Sub
ErrH:
Debug.Print "----" & "エラー発生!"
Resume Next
End Sub
実行結果のイミディエイト画像がこちらです。
![TimeName_Sample イミディエイトの画像](https://www.kurumico.com/wp-content/uploads/2024/07/vba-monthname-02.jpg)
3行目、On Error GoTo ErrH でエラーが発生した23行目に処理が飛び中断しないようにしています。
1番目(5行目)、引数 abbreviate に False を指定した場合、省略しません。
2番目(6行目)、引数 abbreviate を省略した場合は、False を指定した場合と同じです。
3番目(7行目)、引数 abbreviate に True を指定した場合「月」は省略されて数字だけ返ります。
4番目(10行目)、実行時の月を関数 Month(Now) で取得しています。
5番目(13行目)、引数 month に (-1) のように 1~12 の範囲以外を指定した場合はエラーになります。
6番目(14行目)、同じく引数 month が (13) なら 1~12 の範囲以外なのでエラーです。
7番目(17行目)、引数 month に 全角文字の数字で指定した場合、正常に認識されます。
8番目(20行目)、引数 month に 数値をひらがな読み で指定した場合は、認識されずエラー発生です。
22~24行目、エラーハンドラー部分です。24行目の Resume Next でエラー発生地点の次の行から処理を再開させるようにしています。
日付・時刻関数の使用例について
Date 関数のほか「日付・時刻」の関数について解説しているこちらの記事もご覧いただければ幸いです。
Timer など覚えておきたい日付時刻の処理について、より詳しい解説記事がこちらです。サンプルコードも複数掲載していますので是非ご覧ください。
おわりに
VBAの関数一覧はこちらからご参照ください。
VBAサンプルファイルダウンロードページのご案内
このページで使用したサンプルファイルの登録はありません(^^;
ページ内のコードをコピーしてご利用ください。
ダウンロードページへのリンクは下のカードクリックでジャンプできます。
よろしければご利用ください!
Excel VBA MonthName 関数は、指定された数値に対応する月の名前を文字列で返します。
1~12 の範囲の数値を対応する月を表す文字列にして返します。月名で表示するのか数字だけで表示するのかをオプションで指定できます。
月ごとの集計表の見出しやタイトルを月名の文字列で表示設定したりする際に利用できます。
以上、この解説が少しでもみなさまのお役に立てたなら幸いです(^^;