| 
    
     |  | ▼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
 
 |  |