Можно использовать следующие функции. Они даже работают на високосные годы.
'Если вы сдадите # 2016/01/20 #, вы получите # 2016/01/31 #
Public Function GetLastDate(tempDate As Date) As Date
GetLastDate = DateSerial(Year(tempDate), Month(tempDate) + 1, 0)
End Function
'Если вы сдадите # 2016/01/20 #, вы получите 31
Public Function GetLastDay(tempDate As Date) As Integer
GetLastDay = Day(DateSerial(Year(tempDate), Month(tempDate) + 1, 0))
End Function