|
こんにちは。かみちゃん です。
>各セルに、開始年、開始月、開始日、開始時間、
>終了年、終了月、終了日、終了時間を入力します。
>開始から終了まで1時間単位でファイル名称を作りたい
開始年〜終了時間までがA2〜H2に入力してある場合だと以下のような感じで取得
できると思います。
Option Explicit
Sub Macro1()
Dim strDate As String, strTime As String
Dim StartDateTime As Date, EndDateTime As Date, MakeDateTime As Date
'開始日時の取得と日付時刻型かチェック
strDate = Range("A2").Value & "/" & Range("B2").Value & "/" & Range("C2").Value
strTime = Range("D2").Value & ":0:0"
If Not IsDate(strDate & " " & strTime) Then
MsgBox "開始日時の入力に誤りがあります" & vbCrLf & _
strDate & " " & strTime, vbCritical
Exit Sub
Else
StartDateTime = DateValue(strDate) + TimeValue(strTime)
End If
'終了日時の取得と日付時刻型かチェック
strDate = Range("E2").Value & "/" & Range("F2").Value & "/" & Range("G2").Value
strTime = Range("H2").Value & ":0:0"
If Not IsDate(strDate & " " & strTime) Then
MsgBox "終了日時の入力に誤りがあります" & vbCrLf & _
strDate & " " & strTime, vbCritical
Exit Sub
Else
EndDateTime = DateValue(strDate) + TimeValue(strTime)
End If
'開始日時≦終了日時になっているかをチェック
If StartDateTime > EndDateTime Then
MsgBox "開始日時が終了日時より未来になっています" & vbCrLf & _
"開始日時" & StartDateTime & vbCrLf & _
"終了日時" & EndDateTime, vbCritical
Exit Sub
End If
'開始から終了まで1時間単位でファイル名称を作成
MakeDateTime = StartDateTime
Do While MakeDateTime <= EndDateTime
'ファイル名を取得(yyyymmddhhmmss形式)
MsgBox Format(MakeDateTime, "yyyymmddhhmmss")
'1時間進める
MakeDateTime = DateAdd("h", 1, MakeDateTime)
Loop
MsgBox "ファイル名の作成を終了しました"
End Sub
|
|