プロが教えるわが家の防犯対策術!

VBAで、同一フォルダの複数ファイルに対し「backup」フォルダを同じディレクトリに作成した上で、全ファイルをそこへコピーするソースを教えていただけますでしょうか?

A 回答 (2件)

こんばんは。



一例です。

Sub test()
  Dim myFolderName As String
  Dim myFolderCheck As String
  Dim myFileName As String

  myFolderName = "backup"
  
  myFolderCheck = Dir(ThisWorkbook.Path & "\" & myFolderName, vbDirectory)
  If myFolderCheck = "" Then
    MkDir ThisWorkbook.Path & "\" & myFolderName
  End If
  
  myFileName = Dir(ThisWorkbook.Path & "\*.*", vbNormal)
  Do Until myFileName = ""
    If myFileName <> ThisWorkbook.Name Then
      FileCopy myFileName, myFolderName & "\" & myFileName
    End If
    myFileName = Dir()
  Loop

End Sub
    • good
    • 0

Set fso = CreateObject("Scripting.FileSystemObject")


If fso.FolderExists(".\backup") = False Then
fso.CreateFolder (".\backup")
End If
For Each afile In fso.GetFolder(".").Files
fso.CopyFile afile.Path, fso.GetParentFolderName(afile) & "\backup\"
Next

ご要望はこんな感じでしょうか?
メモ帳にはりつけて、拡張子vbsで同じフォルダに保存し、実行してください。
Excel等のVBAでやるなら、ThisWorkBook.Pathとかに書き換えて、絶対パスにしてください。"."は使えません。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!