月の最終日を取得する方法です。色々と方法はありますが、DateSerial関数を利用するのが一番スマートなので紹介します。
DateSerial関数 を使って解決する
DataSerial関数の3番目の引数は日を指定します。よって1~31の数字を 通常は 指定します。しかし、0を指定すると「前月の末日 と見なす 」という特別な仕様がありますので、これを利用します。
サンプルプログラムを確認する(コピペOK)
Sub sample()
Dim dt As Date
dt = "2019/6/15"
Debug.Print DateSerial(Year(dt), Month(dt) + 1, 0) '2019/6/30
dt = "2020/2/3"
Debug.Print DateSerial(Year(dt), Month(dt) + 1, 0) '2020/2/29
End Sub