はじめての親子ハイキングに挑戦!! >>

VBAで期間が何か月間なのかを取得する方法を教えてください。

Sub test1()
Dim dateStart As Date
Dim dateEnd As Date

dateStart = "2013/1/1"
dateEnd = "2013/12/31"

Debug.Print 12 & "カ月です"
End Sub

この場合、12か月ですが、
例えば
dateStart = "2013/7/1"
の場合、6カ月を返したいのですが
それを取得するコードを教えていただけますか?

よろしくお願いします。

A 回答 (3件)

差の表示指定記述が誤ってるかも。


Debug.Print datediff("m", dateStart, dateEnd) & "カ月です"

これが12を返すのか、11を返すのか
11を返すなら
Debug.Print datediff("m", dateStart, dateEnd)+1 & "カ月です"
    • good
    • 0
この回答へのお礼

ありがとうございました。

お礼日時:2013/12/30 21:49

ご質問の内容が、月だけで考えればよさそうなこと、また、バグが疑われる DateDiff 関数の使用を避けるという意味で、下のとおり書いてみました。



単純に、足し引きすればいいだけです。難しく考え過ぎなのでは?


Sub test1()
  Dim dateStart As Date
  Dim dateEnd As Date
  dateStart = "2013/7/1"
  dateEnd = "2013/12/31"
  Debug.Print Month(dateEnd) - Month(dateStart) + 1 & "カ月です"
End Sub
    • good
    • 0
この回答へのお礼

ありがとうございました。

お礼日時:2013/12/30 21:49

いま、VBA動かせる環境にないんですが



> Debug.Print 12 & "カ月です"
> End Sub

定数12を表示してますよね?

Debug.Print datediff(m, dateStart, dateEnd) & "カ月です"
でどうなります?
    • good
    • 0
この回答へのお礼

ありがとうございました。

お礼日時:2013/12/30 21:49

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


人気Q&Aランキング