Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


58263 / 76732 ←次へ | 前へ→

【23200】Re:開始日時〜終了日時まで1時間おきのファイル名(文字列)を作成したい
回答  かみちゃん  - 05/3/16(水) 7:12 -

引用なし
パスワード
   こんにちは。かみちゃん です。

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

【23196】1時間ずつ進めたいのですが おじさん 05/3/16(水) 0:47 質問
【23200】Re:開始日時〜終了日時まで1時間おきのフ... かみちゃん 05/3/16(水) 7:12 回答
【23214】Re:開始日時〜終了日時まで1時間おきのフ... おじさん 05/3/16(水) 13:34 お礼

58263 / 76732 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free