Mover Arquivos com FileSystemObject (MoveFile) do VBA

Written by

Editorial Team

Reviewed by

Steve Rynearson

Translated by

Daniel Caramello

Last updated on May 19, 2023

Este tutorial demonstrará como usar o método MoveFile do FileSystemObject.

Mover Arquivos com FileSystemObject do VBA

O método MoveFile move um ou mais arquivos de um local para outro.

Definir Referência do VBA

Primeiro, ao usar FileSystemObject, talvez seja necessário definir uma referência à biblioteca de tempo de execução de scripts VB: abra o Editor do Visual Basic(ALT + F11), selecione Ferramentas > Referências no menu suspenso e marque a caixa de seleção ‘Microsoft Scripting Runtime’.

ativar scripting runtime

FileSystemObject

Em segundo lugar, você deve criar o FileSystemObject:

Dim FSO As New FileSystemObject
Set FSO = CreateObject("Scripting.FileSystemObject") 

Agora você tem acesso ao MoveFile e aos outros métodos do FileSystemObject.

Mover um Arquivo

Para mover um único arquivo, você pode usar a sintaxe simples de FSO.MoveFile( source, destination ).

FSO.MoveFile "C:\Src\TestFile.txt", "C:\Dst\ModTestFile.txt"

Como mencionado acima, primeiro você precisa criar o FileSystemObject:

Sub FSOMoveFile()
    Dim FSO As New FileSystemObject
    Set FSO = CreateObject("Scripting.FileSystemObject") 

    FSO.MoveFile "C:\Src\TestFile.txt", "C:\Dst\ModTestFile.txt"

End Sub

Mover Vários arquivos

Você pode mover vários arquivos com partes do mesmo nome:

FSO.MoveFile "C:\Src\TestFile*.txt", "C:\Dst\"

Ou você pode mover vários arquivos com a mesma extensão:

FSO.MoveFile "C:\Src\ *.xlsx", "C:\Dst\"

Ou simplesmente todos os arquivos de uma pasta:

FSO.MoveFile "C:\Src\*", "C:\Dst\"

Observe que aqui usamos o caractere curinga*.

Em vez de usar o curinga *, você pode mover todos os arquivos em uma pasta usando um loop For Each.

Sub FSOMoverTodosArquivos ()
    Dim FSO As New FileSystemObject 
    Dim CaminhoDe As String
    Dim CaminhoPara As String
    Dim ArquivoNaPasta As Object

    CaminhoDe = "C:\Src\"   
    CaminhoPara = "C:\Dst\"  
   
    Set FSO = CreateObject("Scripting.FileSystemObject")

    For Each ArquivoNaPasta In FSO.GetFolder(CaminhoDe).Files
    	ArquivoNaPasta.Move CaminhoPara
    Next ArquivoNaPasta

End Sub

Mover Arquivo para uma Nova Pasta

Você também pode mover o(s) arquivo(s) para uma pasta recém-criada. Para fazer isso, adicione o comando

MkDir "C:\Dst\"

antes de declarar o caminho de destino.

Sub FSOMoverTodosArquivos ()
    Dim FSO As New FileSystemObject 
    Dim CaminhoDe As String
    Dim CaminhoPara As String
    Dim ArquivoNaPasta  As Object

    CaminhoDe = "C:\Src\"  
    MkDir "C:\Dst\"
    CaminhoPara = "C:\Dst\" 
    
    Set FSO = CreateObject("Scripting.FileSystemObject")

    For Each ArquivoNaPasta In FSO.GetFolder(CaminhoDe).Files
    	ArquivoNaPasta.Move CaminhoPara
    Next ArquivoNaPasta

End Sub

Mover Pastas

Você pode usar o método análogo MoveFolder para mover pastas.

Sub FSOMoverPasta()
    Dim FSO As New FileSystemObject
    Set FSO = CreateObject("Scripting.FileSystemObject") 

    FSO.MoveFolder "C:\PastaAntiga", "C:\Dst\PastaNova"

End Sub
vba-free-addin

Exemplos de Add-ins de Códigos VBA

Acesse facilmente todos os exemplos de código que se encontram em nosso site.

Simply navigate to the menu, click, and the code will be inserted directly into your module. .xlam add-in.

(Nenhuma instalação necessária!)

Baixe de Graça

Retornar aos Exemplos de Códigos VBA