Como usar a instrução FileCopy em VBA?

A instrução `FileCopy` no VBA (Visual Basic for Applications) é utilizada para copiar arquivos de um local para outro. É uma função bastante útil quando você precisa duplicar ou mover arquivos ao automatizar tarefas no Excel, Access, ou outras aplicações do Microsoft Office.

Aqui está a sintaxe básica do `FileCopy`:

FileCopy source, destination
  • source: Este é o caminho completo do arquivo original que você deseja copiar. É uma string que especifica a localização e o nome do arquivo de origem.
  • destination: Este é o caminho completo para onde você quer que o arquivo seja copiado. Também é uma string que especifica a localização e o nome do arquivo de destino.

Exemplo de Uso:

Suponha que você queira copiar um arquivo chamado “dados.xlsx” localizado na pasta “C:Origem” para a pasta “C:Destino”. O código VBA seria algo assim:

Sub CopiarArquivo()

    Dim caminhoOrigem As String
    Dim caminhoDestino As String
    
    caminhoOrigem = "C:Origemdados.xlsx"
    caminhoDestino = "C:Destinodados.xlsx"
    
    ' Utiliza a função FileCopy para copiar o arquivo
    FileCopy caminhoOrigem, caminhoDestino

    MsgBox "Arquivo copiado com sucesso!"
    
End Sub

Considerações:

  • Erro se o arquivo de origem não existir: Se o arquivo especificado no caminho de origem não existir, o VBA gerará um erro. Você pode lidar com isso usando uma estrutura de tratamento de erros.
  • Sobrescrever arquivos: Se o arquivo de destino já existir, ele será sobrescrito sem aviso. Tenha cuidado para não perder dados importantes.
  • Permissões de Arquivo: Certifique-se de que você tem permissões adequadas para ler o arquivo de origem e escrever no local de destino.
  • Caminhos corretos: Verifique sempre se os caminhos estão corretos para evitar erros.

Aqui está como você poderia implementar um simples tratamento de erros para verificar a existência do arquivo:

Sub CopiarArquivoSegura()

    Dim caminhoOrigem As String
    Dim caminhoDestino As String
    
    caminhoOrigem = "C:Origemdados.xlsx"
    caminhoDestino = "C:Destinodados.xlsx"
    
    ' Verifica se o arquivo de origem existe
    If Dir(caminhoOrigem) <> "" Then
        ' Copia o arquivo se ele existir
        FileCopy caminhoOrigem, caminhoDestino
        MsgBox "Arquivo copiado com sucesso!"
    Else
        MsgBox "Arquivo de origem não encontrado."
    End If

End Sub

Este exemplo verifica se o arquivo de origem existe antes de tentar copiá-lo, ajudando a evitar erros de tempo de execução.

Unlock Your Potential

Excel

Basic - Advanced

Access

Access Basic - Advanced

Power BI

Power BI Basic - Advanced

Help us grow the project