HOME > 即効テクニック > AccessVBA > 日付・文字列操作・演算 > FormatとMonth関数の組み合わせに注意する

即効テクニック

日付・文字列操作・演算

FormatとMonth関数の組み合わせに注意する

(Access 97)
Month関数とFormat関数を組み合わせて使用すると、正しい結果を返さない現象が発生します。
例えば、下記のような場合です。

Format$(Month(#4/1/2001#), "mmmm")

上記のステートメントでは、AprilではなくJanuaryを返します。
Month関数は日付を整数に変換し、Format関数は、引数として日付シリアル値を指定しますが、日付シリアル値ではなく整数を受け取るため正しい結果を得ることができません。
これは、 Accessの仕様によるものですが、このような現象を回避するための例を、次にあげます。
月のみを返すには、Month関数を使用せずにFormat関数のみを使用します。
Month関数が必要な場合は、Choose関数を使用して月を返します。

●サンプル●
Sub Sample()

    MsgBox Format$(Month(#4/1/2001#), "mmmm")
    
    MsgBox Format(#4/1/2001#, "mmmm")

    MsgBox Choose(Month(#4/1/2001#), "January", "February", _
            "March", "April", "May", "June", "July", _
            "August", "September", "October", _
            "November", "December")
End Sub