教えて!ExcelVBA!

ExcelVBAの基礎知識・書き方について紹介します。

ExcelVBAのWorksheetFunctionオブジェクトで使用するMonth関数の使い方

構文

構文は以下の通りです。

WorksheetFunction.Month(シリアル値)

解説

WorksheetFunctionは、ExcelVBAの組み込みオブジェクトで、Excelのワークシート関数をVBAから呼び出す際に使用します。Month関数は、指定されたシリアル値の日付から「月」を取得する関数です。シリアル値は、Excelが日付をシリアル値で扱っているため、日付形式のデータ(例2024/09/22)をそのまま値に変換して「月」の数値(1〜12)を返します。

プログラミング例

具体的なプログラミング例を紹介します。

(例1)単純な月の取得

Sub 月を取得する例()
    Dim 日付 As Date
    Dim 取得した月 As Integer
    ' 今日の日付を取得
    日付 = Date
    ' WorksheetFunctionオブジェクトを使って月を取得
    取得した月 = WorksheetFunction.Month(日付)
    ' 結果を表示
    MsgBox "今日の月は " & 取得した月 & " 月です。"
End Sub

上記のプログラムは、Month関数を使って日付から「月」の部分だけを取り出し、取得した月変数に代入しています。

(例2) 指定した日付の月を取得

Sub 特定の日付の月を取得()
    Dim 指定日付 As Date
    Dim 月 As Integer
    ' 2024年12月25日を指定
    指定日付 = "2024/12/25"
    ' WorksheetFunctionを使って月を取得
    月 = WorksheetFunction.Month(指定日付)
    ' 結果を表示
    MsgBox 指定日付 & " の月は " & 月 & " 月です。"
End Sub

上記のプログラムは、指定日付に特定の日付(例では「2024/12/25」)を設定し、Month関数でその日付の「月」を取得し、月変数に入れています。

まとめ

Month関数を使用すると、指定された日付の「月」を数値で取得できます。日付はExcelの内部では通常値として認識されているため、ユーザーが認識している「日付」形式でも、問題なく処理できます。