• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VBSで指定した日付のファイルのみを抽出するには)

VBSで指定した日付のファイルのみを抽出する方法

このQ&Aのポイント
  • VBSを使用して、指定した日付のファイルのみを抽出する方法について教えてください。
  • 具体的には、日付を入力するインプットボックスを表示し、入力した日付を含むファイルを指定のフォルダから抽出し、別のフォルダにコピーするプログラムを作成しています。
  • 現在のプログラムでは、日付の入力がキャンセルされた場合や不正な入力がされた場合に対応しています。

質問者が選んだベストアンサー

  • ベストアンサー
  • DOUGLAS_
  • ベストアンサー率74% (397/534)
回答No.2

 いろいろな分岐点を設けてみました。  検証して、理解しながらお試しください。 Dim hizuke, fs, msg, f Const copyFrom = "D:\" Const copyTo = "D:\test\" Do       hizuke = InputBox("日付を入力してください。" & vbCr & vbCr & "例)2000/01/01 → 000101")       If hizuke = "" Then Exit Do       If Len(hizuke) = 6 Then           On Error Resume Next           hizuke = CDate("20" & Left(hizuke, 2) & "/" & Mid(hizuke, 3, 2) & "/" & Right(hizuke, 2))           If Err.Number = 0 Then               On Error GoTo 0               msg = MsgBox(FormatDateTime(hizuke, 2) & "でよろしいか ", vbYesNoCancel)               If msg = 6 Then                   Set fs = CreateObject("Scripting.FileSystemObject")                   For Each f In fs.GetFolder(copyFrom).Files                       If InStr(f.Name, Replace(Right(hizuke, 8), "/", "")) > 0 Then                           If fs.FileExists(copyTo & f.Name) Then                               If MsgBox(f.DateLastModified _                                   & " 更新の「" & f.Path & "」を" & vbCr _                                   & fs.GetFile(copyTo & f.Name).DateLastModified _                                   & " 更新の「" & copyTo & f.Name & "」に" & vbCr _                                   & "上書きしてよろしいか ", vbYesNoCancel) = 6 Then                                   fs.CopyFile f.Path, copyTo                               End If                           Else                               fs.CopyFile f.Path, copyTo                           End If                       End If                   Next                   Set fs = Nothing                   Exit Do               ElseIf msg = 2 Then Exit Do               End If           Else               On Error GoTo 0               MsgBox "入力した値が不正です。"           End If       Else           MsgBox "入力した値が不正です。"       End If Loop

viajero365
質問者

お礼

ありがとうございます。行いたいことができました。検証しながら理解を深めさせていただきます。

その他の回答 (1)

  • notnot
  • ベストアンサー率47% (4900/10358)
回答No.1

>入力した日付をパラメータとして、ファイル検索を行い該当するファイルを抽出する方法 直接そういうことはできないので、フォルダの全ファイルを列挙して、条件に合う物をifで選択してください。 全ファイル列挙は http://msdn.microsoft.com/ja-jp/library/cc427964.aspx あたりを参考にしてください。

viajero365
質問者

お礼

ありがとうございます。Fileコレクションを使用してソースを組んでみます。