You need just one-line function to evaluate the number of days in a month (while taking leap years into account, of course). The trick is to use the DateDiff and DateSerial functions to calculate the difference between the first day of the current month and the first day of the subsequent month :
Function DaysInMonth(ByVal Month As Integer, ByVal Year As Integer) As Integer DaysInMonth = DateDiff("d", DateSerial(Year, Month, 1), DateSerial(Year, _ Month + 1, 1))End Function
At first it seems that you need an If statement to deal with December in a separate block of code, but the DateSerial function returns a consistent value even when Month > 12.