末日を求めるには
月の末日を求めるには、うるう年の計算とかで、結構やっかいです。
そこで、IsDate関数を使って末日を31日からデクリメントして求めていけば、うるう年の計算を考慮しないで済むわけです。
Private Sub Command1_Click() Dim strMatujitu As String strMatujitu = GetMatujitu(Now) End Sub Public Function GetMatujitu(MyDate As String) As String Dim strWkDate As String Dim vntMatubi As Variant strWkDate = Year(MyDate) & "/" & Format(Month(MyDate), "00") & "/31" vntMatubi = 30 '日付として認識できるまで繰り返す Do While Not IsDate(strWkDate) strWkDate = Year(MyDate) & "/" & Format(Month(MyDate), "00") & "/" & vntMatubi '1日前にする vntMatubi = vntMatubi - 1 Loop GetMatujitu = strWkDate End Function
尚、日にちのデクリメントには、DateAdd関数が使えそうですが、存在しない日をDateAdd関数の第3引数に渡すとエラーとなりました。