| 
    
     |  | こんにちは。かみちゃん です。 
 >各セルに、開始年、開始月、開始日、開始時間、
 >終了年、終了月、終了日、終了時間を入力します。
 >開始から終了まで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
 
 
 |  |