
Para abrir um arquivo com VBA no Excel, use o comando Workbooks.Open(“caminho\do\arquivo.xlsx”) — o Excel abre a pasta de trabalho normalmente, como se você tivesse aberto manualmente, e a partir daí você pode referenciá-la pelo nome no restante do código.
Muitas vezes é preciso abrir um arquivo com o VBA.
Neste artigo iremos mostrar como fazer para abrir um arquivo utilizando o VBA, e também iremos mostrar um exemplo aonde iremos abrir uma janela aonde um arquivo será selecionado para ser aberto pelo VBA.
Youtube
Assista ao vídeo abaixo, caso prefira aprender como fazer para abrir um arquivo utilizando o VBA assistindo a um vídeo.
Ah, e não se esqueça de se INSCREVER no nosso canal.
E coloque o seu melhor e-mail abaixo para receber todas as nossas novidades em primeira mão.
Ambiente do VBA
Para podermos utilizar o VBA, primeiramente precisamos abrir o ambiente do VBA no Excel.
Para isso, vá na aba “Desenvolvedor” e clique em “Visual Basic”.

Ao clicar em “Visual Basic” uma nova janela irá se abrir. Essa nova janela é o ambiente do VBA.
Para podermos começar a escrever o código que será utilizado precisamos criar um “Módulo”.

- Clique com o botão direito em “VBAProject (Pasta1)”. Uma nova janela irá aparecer.
- Clique em “Inserir”
- Clique em “Módulo”
Ao criar um “Módulo”(1), o fundo cinza que estava na parte direita da tela, será substituído por uma janela(2), e é nessa janela que iremos escrever o nosso código.

Abrir um arquivo com o VBA
Para abrir um arquivo Excel, utilizando o VBA, será necessário utilizar a função Workbooks.Open, quer irá abrir o arquivo selecionado. Para isso basta colocar entre aspas o caminho completo do arquivo.
Note que tanto faz utilizar, ou não, os parênteses junto com a função. Ela irá funcionar do mesmo jeito.
Sub Abrir_Arquivo() Workbooks.Open "C:\nome_do_arquivo.xlsx" End Sub
Sub Abrir_Arquivo()
Workbooks.Open ("C:\nome_do_arquivo.xlsx")
End Sub
Abrir um arquivo a partir de uma variável
Para abrir um arquivo, aonde o caminho dele está armazenado em uma variável, basta utilizar a mesma função acima. Mas ao invés de utilizar o caminho do arquivo, iremos utilizar uma variável que tem o caminho do arquivo.
Sub Utilizar_uma_variavel_para_abrir_um_arquivo() Dim arquivo As String arquivo = "C:\nome_do_arquivo.xlsx" Workbooks.Open arquivo End Sub
Sub Utilizar_uma_variavel_para_abrir_um_arquivo() Dim arquivo As String arquivo = "C:\nome_do_arquivo.xlsx" Workbooks.Open (arquivo) End Sub
Abrir uma janela para selecionar um arquivo para abrir
Se ao invés de informar por escrito o caminho completo do arquivo, você queira deixar esse processo um pouco mais dinâmico, através de uma janela que mostrará os arquivos e você escolherá qual arquivo será aberto.
Nesta parte do tutorial iremos mostrar como fazer para abrir essa janela para poder escolher um arquivo e depois o VBA irá abri-lo.
Para isso iremos usar a função Application.GetOpenFilename. Essa função irá abrir uma janela aonde será possível selecionar um arquivo. O arquivo selecionado não será aberto por essa função, essa função irá retornar o caminho completo do arquivo e esse caminho será armazenado em uma variável.
E essa variável será utilizada, depois, pela função Workbooks.Open, que então irá abrir o arquivo selecionado.
Sub Abrir_janela_para_abrir_arquivo()
Dim arquivo As String arquivo = Application.GetOpenFilename(, , "Abrir arquivo") Workbooks.Open arquivo End Sub
Se inscreva!
Se você ainda está começando com VBA, veja também o nosso guia completo de VBA para iniciantes.
Tratando erro quando o arquivo não existe
Se o caminho informado no Workbooks.Open estiver errado, ou o arquivo tiver sido movido, apagado ou renomeado, o VBA gera um erro em tempo de execução e a macro para de funcionar. Para evitar que isso trave a planilha do usuário final, combine o Workbooks.Open com uma verificação antes de abrir:
Sub Abrir_Arquivo_Com_Tratamento()
Dim arquivo As String
arquivo = "C:\nome_do_arquivo.xlsx"
If Dir(arquivo) = "" Then
MsgBox "Arquivo não encontrado: " & arquivo
Exit Sub
End If
Workbooks.Open arquivo
End Sub
A função Dir verifica se o arquivo existe antes mesmo de tentar abri-lo — se ela retornar texto vazio, o arquivo não foi encontrado naquele caminho. Essa validação evita a mensagem de erro padrão do VBA, que costuma confundir quem não conhece programação, e permite mostrar uma mensagem mais clara para o usuário. Para um tratamento de erro mais completo, incluindo os comandos On Error Resume Next e On Error GoTo, veja o nosso artigo sobre como tratar erros no VBA do Excel.
Abrir um arquivo somente para leitura
Quando você só precisa consultar dados de outro arquivo, sem correr o risco de alguém salvar alterações nele por engano, abra o arquivo em modo somente leitura usando o segundo parâmetro do Workbooks.Open:
Sub Abrir_Arquivo_Somente_Leitura() Workbooks.Open Filename:="C:\nome_do_arquivo.xlsx", ReadOnly:=True End Sub
Com ReadOnly:=True, o Excel abre o arquivo bloqueado para edição — se alguém tentar salvar, o Excel vai pedir para salvar com outro nome, protegendo o arquivo original.
Fechar o arquivo depois de usar
Se a sua macro abre um arquivo só para copiar dados dele e depois não precisa mais dele aberto, é uma boa prática fechar o arquivo automaticamente ao final, para não deixar várias pastas de trabalho abertas sem necessidade:
Sub Abrir_E_Fechar_Arquivo()
Dim wb As Workbook
Set wb = Workbooks.Open("C:\nome_do_arquivo.xlsx")
'aqui você faria alguma operação com os dados do arquivo "wb"
wb.Close SaveChanges:=False
End Sub
O parâmetro SaveChanges:=False fecha o arquivo sem salvar nenhuma alteração feita durante a execução da macro — use True se quiser salvar antes de fechar.
Perguntas frequentes
O que acontece se eu tentar abrir com VBA um arquivo que não existe no caminho informado?
O VBA gera um erro em tempo de execução (erro 1004, geralmente) e a macro para de funcionar. Para evitar isso, verifique antes com a função Dir(caminho) — se ela retornar vazio, o arquivo não existe nesse caminho.
Como abrir um arquivo Excel como somente leitura usando VBA?
Use o parâmetro ReadOnly:=True dentro do Workbooks.Open, assim: Workbooks.Open Filename:=”caminho”, ReadOnly:=True. O arquivo abre bloqueado para edição, evitando que alguém salve alterações por engano.
Como fecho um arquivo que abri com o VBA sem precisar fazer isso manualmente?
Guarde a referência do arquivo aberto em uma variável do tipo Workbook (Set wb = Workbooks.Open(…)) e use wb.Close SaveChanges:=False ao final da macro para fechar sem salvar, ou SaveChanges:=True para salvar antes de fechar.
Se você curtiu esse tutorial, se inscreva para receber o nosso curso gratuito de VBA, assim como as nossas novidades.