Estoy seguro de que existe una función que devuelve el último día del mes, pero hasta que alguien te indique cuál es, seguro que va a resulverte el problema esta función que se me ha ocurrido:
Private Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer)
' TextBox en el que se introduce la fecha a valorar
If KeyCode = 13 Then
Dim nDias As Integer ' Este será el valor del último día del mes
nDias = DiasMes(Text1.Text)
End If
End Sub
Private Function DiasMes(dFecha As Date) As Integer
Dim nDias As Integer
Dim dMes As Date
On Error Resume Next
nDias = 31
Do
dMes = Str(nDias) & Mid(dFecha, 3)
If Err = 0 Then
Exit Do
End If
Err = 0
nDias = nDias - 1
Loop
DiasMes = nDias
End Function
Te adjunto el programita que he preparado para conseguir este cálculo.
También tengo que indicarte que este tema debías de haberlo planteado en el foro de Visual Basic, no en VBA...
Saludos y suerte