2016-07-19 20 views
1

実際には、あるフォルダから別のフォルダにExcelファイルを移動するコードを探しています。非常に申し訳ありませんが、実際にVBAを初めて使用したことがないので、コーディングの方法はわかりません。あるフォルダから別のフォルダにファイルを移動する

私はあなたに感謝するでしょう

答えて

1

あなたはFileSystemObjectオブジェクトを使用することができます:あなたは、さらに説明が必要な場合

Dim FSO as Object 
Set FSO = CreateObject("Scripting.Filesystemobject") 
FSO.MoveFile("SourceFileName", "TargetFileName") 

は、コメントをお気軽に。

+0

が、この本は、ワイルドカードを使用できますか?たとえば、xyzディレクトリの "Test_"で始まり、同じ名前に移動するものは何ですか? – Vnge

+0

私のPCのExcel 2013ではこのコード編集者は受け入れられません。このFSO.MoveFileを受け入れるソース:= sourceFilePath、宛先:= destinationFilePath –

1

以下のコードの下に

Sub test() 
    Set fso = CreateObject("scripting.filesystemobject") 
    fso.MoveFile Source:="C:\work\test1.xlsx", Destination:="c:\work\movecheck\" ' replace with source and destination as required. 
End Sub 
+0

完全なファイルパスを宛先として指定する必要があります。フォルダを持ってくるだけで、エラーになります。 –

1
Sub MoveFiles() 
    Dim FSO As Object 
    Dim SourceFileName, DestinFileName As String 

    Set FSO = CreateObject("Scripting.Filesystemobject") 
    SourceFileName = "C:\Users\Jun.xlsx" 
    DestinFileName = "C:\Users\Desktop\Jun.xlsx" 

    FSO.MoveFile Source:=SourceFileName, Destination:=DestinFileName 

    MsgBox (SourceFileName + " Moved to " + DestinFileName) 
End Sub 
1
Sub move_data() 
    'Move test data to folder 

    Dim FSO As Object 
    Dim FromPath As String 
    Dim ToPath As String 
    Dim Fdate As Date 
    Dim FileInFromFolder As Object 


    MkDir "D:\TEST\"  'Create new folder name TEST in D: 
    FromPath = "E:\test\" 'Source files 
    ToPath = "D:\TEST\"  'Target destination 

    Set FSO = CreateObject("scripting.filesystemobject") 

    If FSO.FolderExists(FromPath) = False Then 
     MsgBox FromPath & " doesn't exist" 
     Exit Sub 
    End If 

    For Each FileInFromFolder In FSO.getfolder(FromPath).Files 
     FileInFromFolder.move ToPath 
    Next FileInFromFolder 

End Sub 
1

で試してみてくださいは、先のフォルダにソースフォルダからのみエクセル(のxlsx)ファイルを移動したコードです。他のタイプのファイルは、保存先フォルダに残されます。

Sub MoveFiles() 

Dim sourceFolderPath As String, destinationFolderPath As String 
Dim FSO As Object, sourceFolder As Object, file As Object 
Dim fileName As String, sourceFilePath As String, destinationFilePath As String 

Application.ScreenUpdating = False 

sourceFolderPath = "D:\SourceFolder" 
destinationFolderPath = "D:\DestinationFolder" 

Set FSO = CreateObject("Scripting.FileSystemObject") 
Set sourceFolder = FSO.Getfolder(sourceFolderPath) 

For Each file In sourceFolder.Files 
    fileName = file.Name 
    If InStr(fileName, ".xlsx") Then ' Only xlsx files will be moved 
     sourceFilePath = file.Path 
     destinationFilePath = destinationFolderPath & "\" & fileName 
     FSO.MoveFile Source:=sourceFilePath, Destination:=destinationFilePath 
    End If ' If InStr(sourceFileName, ".xlsx") Then' Only xlsx files will be moved 
Next 

'Don't need set file to nothing because it is initialized in for each loop 
'and after this loop is automatically set to Nothing 
Set sourceFolder = Nothing 
Set FSO = Nothing 

End Sub 

1つのファイルだけを移動する必要がある場合に最適なソリューションです:

Name sourceFolderPath & fileName As destinationFilePath 
関連する問題