|
▼yoppy さん:
>本日の日付と一ヵ月後の日付をそれぞれのTextboxに返したいと思い
たとえば、今日(3月22日)下記のコードを実行すると、2003/3/22と
2003/4/21が返されますが、一ヶ月後の日付4/22ではなくていいので
しょうか?
とりあえず、下記のコードとおり「一ヶ月後の前日」を返すには、
次のようにします。
ポイントは、DateAdd関数を使用します。
> .TextBox1.Value = myyear - 1988
> .TextBox2.Value = mymonth + 1
> .TextBox3.Value = myday - 1
.TextBox1.Value = Year(DateAdd("d", -1, DateAdd("m", 1, Date))) - 1988
.TextBox2.Value = Month(Year(DateAdd("d", -1, DateAdd("m", 1, Date))))
.TextBox3.Value = Day(Year(DateAdd("d", -1, DateAdd("m", 1, Date))))
>また、うるう年の2月にはどうしたらよいのでしょうか?
DateAdd関数を使えば何も心配することはありません。
ただ私は、次のようにしたほうがいいと思いますので、ご参考までに・・・
Dim mydate As Date
Dim mydate2 As Date
mydate = Date ' ← この時点のシステム日付を1度のみ取得します。
mydate2 = DateAdd("d", -1, DateAdd("m", 1, mydate))
With UserForm1
.TextBox1.Value = Year(mydate2) - 1988
.TextBox2.Value = Month(mydate2)
.TextBox3.Value = Day(mydate2)
.TextBox4.Value = Year(mydate) - 1988
.TextBox5.Value = Month(mydate)
.TextBox6.Value = Day(mydate)
End With
|
|