2016-03-10 15 views
5

私はVBAでdateで遊んでいて、今月を得ることができません。次のようにテストしたように、現在の年と日を取得するには非常に単純なようだ:いくつかの簡単な例としてExcel VBA現在の月を取得

MsgBox Year(Date) 
MsgBox Day(Date) 
MsgBox Year(Now) 
MsgBox Day(Now) 

しかし、現在の月を数字(1,2など)またはフルネームとしてどのように表示できますか?私はセルにTODAY()を使用し、CurrentMonth = MonthName(Month(Sheet1.Range("A1")))のようなものでVBAでそれを変換することができます。しかし、私はこれをVBA for Excelで直接行うことができるようにしたいと考えています。

+2

'月(今) 'は動作しません。それは3を返す必要があります –

+0

それは何らかの理由で、それ故に私の混乱はありません。 –

+0

'?月(日付)、月(今)'は '3、3'を返します - あなたは何を見ますか? –

答えて

16

てみてください、

debug.print Format(Date, "mmm")  'Mar 
debug.print Format(Date, "mmmm")  'March 
debug.print Int(Format(Date, "m")) '3 
debug.print Int(Format(Date, "mm")) '03 
2
Month(Now) 

現在の月に関連付けられたインデックス番号を返します。

Jeepedのコードは以下の最もコンパクトですが、あなたにインデックスがどのように機能するかのアイデアを与えるために、インデックスに基づいて、月の名前を返します。次のコードでは、返さ:

Dim months(11) As String 
months(0) = "Jan" 
months(1) = "Feb" 
months(2) = "Mar" 
months(3) = "Apr" 
months(4) = "May" 
months(5) = "Jun" 
months(6) = "Jul" 
months(7) = "Aug" 
months(8) = "Sep" 
months(9) = "Oct" 
months(10) = "Nov" 
months(11) = "Dec" 

Dim nowMonth As Integer 
nowMonth = Month(Now) 

For i = 0 To 11 
    If nowMonth = (i + 1) Then 
    MsgBox (months(i)) 
    End If 
Next 
+0

@ScottCraner私は簡単な答えを掲示し、ちょうど私が投稿したより完全なコードに取り組んでいました。あなたはそれが掲示されたときに好きではないので、正解を投票する必要はありません。 –

+0

@ScottCraner;) –

関連する問題