会社のVBAを修正してるのですが前任者が日付の算出を
すべてInteger型にして計算してました。
月またぎは大丈夫だったんですが、2012年から2013年への
年またぎがうまくいってないので日付の関数を使って修正しました。
DateAdd関数
使い方はこんな感じです。
1 2 3 4 5 6 7 8 9 10 11 |
Dim DateWa As String Dim WeekJo As String Dim MinWa As String DateWa = DateAdd("d", 40, "2013/1/15") WeekJo = DateAdd("ww", -2, "2013/1/15") MinWa = DateAdd("n", 60, "22:58:20") MsgBox "40日後:" & DateWa MsgBox "2日前:" & WeekJo MsgBox "60分後:" & MinWa |
■第一引数の種類
第一引数には、年月日時間分秒などを指定して
その第二引数で、加算と減算をしていしています。
“yyyy” 年
“q” 四半期
“m” 月
“y” 年間通算日
“d” 日
“w” 週日
“ww” 週
“h” 時
“n” 分
“s” 秒
これらを使って日付を操ります。
ちなみに仕事では今日の日付から2ヶ月前までの月が欲しかったので
1 2 3 |
For i = 0 To 2 MsgBox Format(DateAdd("m", -i, Format(Now, "yyyy/mm/dd")), "m") Next i |
こんなかんじで使ってます。