• ベストアンサー

VBAで期間が何か月間なのかを取得する方法

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カ月を返したいのですが それを取得するコードを教えていただけますか? よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • bin-chan
  • ベストアンサー率33% (1403/4213)
回答No.2

差の表示指定記述が誤ってるかも。 Debug.Print datediff("m", dateStart, dateEnd) & "カ月です" これが12を返すのか、11を返すのか 11を返すなら Debug.Print datediff("m", dateStart, dateEnd)+1 & "カ月です"

ennkftutukb
質問者

お礼

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

その他の回答 (2)

回答No.3

ご質問の内容が、月だけで考えればよさそうなこと、また、バグが疑われる 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

ennkftutukb
質問者

お礼

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

  • bin-chan
  • ベストアンサー率33% (1403/4213)
回答No.1

いま、VBA動かせる環境にないんですが > Debug.Print 12 & "カ月です" > End Sub 定数12を表示してますよね? Debug.Print datediff(m, dateStart, dateEnd) & "カ月です" でどうなります?

ennkftutukb
質問者

お礼

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

関連するQ&A