VBAで日付に関する実装

日付に関する実装をいつも微妙に忘れるので、備忘録的に残しておきます。

日付の文字列(例 20090127)を日付型に代入する

Sub example1()
  Dim strToday As String
  Dim dateToday1 As Date
  Dim dateToday2 As Date

  strToday = "20090127"
  dateToday1 = CDate(Mid(strToday, 1, 4) & "/" & Mid(strToday, 5, 2) & "/" & Mid(strToday, 7, 2))
  dateToday2 = DateValue(Mid(strToday, 1, 4) & "/" & Mid(strToday, 5, 2) & "/" & Mid(strToday, 7, 2))  

  MsgBox dateToday1
  MsgBox dateToday2
End Sub

※ 日付をあらわす文字列「2009/01/27」や「2009-01-27」にしないと変換出来ません。

Sub example2()
  Dim strToday As String
  Dim dateToday As Date

  strToday = "20090127"
  dateToday = CDate(Format(strToday, "@@@@/@@/@@"))
  
  MsgBox dateToday
End Sub

※ 変換書式に@を使うことで1文字を意味します。

今日の日付をフォーマット(YYYY年MM月DD日)する。

Sub example3()
    MsgBox "今日の日付は" & Year(Date) & "" & Month(Date) & "" & Day(Date) & "日です。"
End Sub
Sub example4()
    MsgBox "今日の日付は" & Format(Date, "YYYY年MM月DD日") & "です。"
End Sub

日付を操作する方法は色々あるので、最後は好みですね(* ̄ー ̄)v
こちらの三流君VBA:文字列を日付型に変換、Cdateへの値の渡し方いろいろ?を参考にさせて頂きました。