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への値の渡し方いろいろ?を参考にさせて頂きました。