実際には、あるフォルダから別のフォルダにExcelファイルを移動するコードを探しています。非常に申し訳ありませんが、実際にVBAを初めて使用したことがないので、コーディングの方法はわかりません。あるフォルダから別のフォルダにファイルを移動する
私はあなたに感謝するでしょう
実際には、あるフォルダから別のフォルダにExcelファイルを移動するコードを探しています。非常に申し訳ありませんが、実際にVBAを初めて使用したことがないので、コーディングの方法はわかりません。あるフォルダから別のフォルダにファイルを移動する
私はあなたに感謝するでしょう
あなたはFileSystemObjectオブジェクトを使用することができます:あなたは、さらに説明が必要な場合
Dim FSO as Object
Set FSO = CreateObject("Scripting.Filesystemobject")
FSO.MoveFile("SourceFileName", "TargetFileName")
は、コメントをお気軽に。
以下のコードの下に
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
完全なファイルパスを宛先として指定する必要があります。フォルダを持ってくるだけで、エラーになります。 –
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
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
で試してみてくださいは、先のフォルダにソースフォルダからのみエクセル(の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
が、この本は、ワイルドカードを使用できますか?たとえば、xyzディレクトリの "Test_"で始まり、同じ名前に移動するものは何ですか? – Vnge
私のPCのExcel 2013ではこのコード編集者は受け入れられません。このFSO.MoveFileを受け入れるソース:= sourceFilePath、宛先:= destinationFilePath –