ファイルコピー(リスト順に実行)

Sub CopyFilesToFolderB()
    ' 機能概要: Sheet1のA列にあるファイルのフルパスを読み取り、フォルダBにコピーする
    ' 引数: なし
    ' 備考: フォルダBのパスは適宜変更

    Dim ws As Worksheet
    Dim lastRow As Long
    Dim i As Long
    Dim filePath As String
    Dim destFolderPath As String
    Dim fileName As String
    Dim fso As Object

    ' フォルダBのパス
    destFolderPath = "C:\FolderB\"  ' フォルダBのパスを適宜変更

    ' ワークシート設定
    Set ws = ThisWorkbook.Sheets("Sheet1")

    ' 最終行を取得
    lastRow = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row

    ' FileSystemObjectの初期化
    Set fso = CreateObject("Scripting.FileSystemObject")

    ' A列のファイルをループしてコピー
    For i = 1 To lastRow
        filePath = ws.Cells(i, 1).Value
        If fso.FileExists(filePath) Then
            fileName = fso.GetFileName(filePath)
            fso.CopyFile filePath, destFolderPath & fileName
        End If
    Next i

    ' オブジェクトの解放
    Set fso = Nothing
End Sub

コメント