文字列の日付から当月末日の日付(YYYYMMDD)を表示する

<分類:値変換>
<使用例:文字列の日付(20190324)から当月末日の日付(20190331)を表示する>
<プログラム例>

Sub 使用例()
   Dim date_moji As String
   Dim rtn1 As String
   Dim rtn2 As String

   date_moji = "20190324"
   rtn1 = 共通_文字列の日付から末日(date_moji)
   rtn2 = 共通_cov_date_d9(rtn1)

   MsgBox ("文字列の日付(" & date_moji & ")の当月末日は(" & rtn2 & ")です")

End Sub

Function 共通_文字列の日付から末日(p1 As String) As Date
   Dim date_moji2 As String
   Dim rtn_date As Date
   Dim rtn_date2 As Date
   Dim rtn_date3 As Date
    
   date_moji2 = Left(p1, 6) & "01"
   rtn_date = 共通_cov_date_9d(date_moji2)
   rtn_date2 = DateAdd("m", 1, rtn_date)
   rtn_date3 = DateAdd("d", -1, rtn_date2)
   
   共通_文字列の日付から末日 = rtn_date3
   
End Function

Function 共通_cov_date_9d(p1 As String) As Date
    Dim d As Date
    d = Left(p1, 4) & "/" & Mid(p1, 5, 2) & "/" & Right(p1, 2)
    共通_cov_date_9d = (Format(d, "yyyy/mm/dd"))
End Function

Function 共通_cov_date_d9(p1 As String) As String
    共通_cov_date_d9 = CStr((Format(p1, "yyyymmdd")))
End Function