Formas de abrir uma Pasta de Trabalho com VBA
Olá! Hoje você vai aprender algumas Formas de abrir uma Pasta de Trabalho com VBA.
Primeiramente, para abrir uma pasta de trabalho com VBA usamos o método Workbooks.Open no qual especificamos o caminho onde se encontra o arquivo que queremos abrir.

Sua sintaxe é:
Workbooks.Open (FileName, UpdateLinks, ReadOnly, Format, Password, WriteResPassword, IgnoreReadOnlyRecommended, Origin, Delilimiter, Editable, Notify, Converter, AddToMru, Local, CorruptLoad)
Essa sintaxe virá desta forma, realmente em inglês, mas, abaixo segue um resumo elaborado pela própria Microsoft sobre o significado de cada uma.
Veja também Como criar uma nova planilha no Excel usando VBA.
Argumentos do Workbooks.Open
- FileName: String. O nome de arquivo da pasta de trabalho a ser aberta.
- UpdateLinks: Especifica a forma como as referências externas (links) no arquivo, como a referência a um intervalo em uma pasta de trabalho são atualizadas.
- ReadOnly: Verdadeiro para abrir a pasta de trabalho em modo somente leitura.
- Format: Se o Microsoft Excel abrir um arquivo de texto, esse argumento especificará o caractere delimitador.
- Se esse argumento for omitido, o delimitador atual será usado.
- Para saber mais sobre os valores usados por esse parâmetro, veja a seção Comentários.
- Password: Uma cadeia de caracteres que contém a senha necessária para abrir uma pasta de trabalho protegida.
- WriteResPassword: Uma cadeia de caracteres que contém a senha necessária para gravar uma pasta de trabalho reservada para gravação.
- Caso esse argumento seja omitido e se a pasta de trabalho exigir uma senha, será solicitada uma senha.
- IgnoreReadOnlyRecommended: True para fazer com que o Microsoft Excel não exiba a mensagem recomendada somente leitura (se a pasta de trabalho tiver sido salva com a opção Somente Leitura Recomendada).
- Origin: Se o arquivo for um arquivo de texto, esse argumento indicará onde foi originado, de forma que as páginas de código e o Retorno de Carro/Alimentação de Linha (CR/LF) possam ser mapeadas corretamente. Pode ser uma das seguintes constantes XlPlatform : xlMacintosh, xlWindows ou xlMSDOS.
- Se esse argumento for omitido, o sistema operacional atual será usado.
- Delimitador: Se o arquivo for um arquivo de texto e o argumento Formatar for 6, esse argumento será uma cadeia de caracteres que especifica o caractere a ser usado como delimitador.
- Por exemplo, use Chr(9) para tabulações, use “,” para vírgulas, use “;” para ponto-e-vírgulas ou use um caractere personalizado.
- Somente o primeiro caractere da cadeia de caracteres será usado.
- Editable: Se o arquivo for um suplemento do Microsoft Excel 4.0, esse argumento será True para abrir o suplemento, de forma que seja uma janela visível.
- Se esse argumento for False ou se for omitido, o suplemento será aberto como oculto e não poderá ser reexibido.
- Essa opção não se aplica a suplementos criados no Microsoft Excel 5.0 ou posterior.
- Se o arquivo for um modelo do Excel, True para abrir o modelo especificado para edição.
- False para abrir uma nova pasta de trabalho com base no modelo especificado.
- O valor padrão é False.
- Notify: Se o arquivo não puder ser aberto em modo leitura/gravação, esse argumento será True para adicionar o arquivo para a lista de notificações de arquivo.
- O Microsoft Excel abrirá o arquivo como somente leitura.
- Converter: O índice do primeiro conversor de arquivos a ser experimentado na abertura do arquivo.
- O conversor do arquivo especificado será experimentado primeiro; se esse conversor não reconhecer o arquivo, todos os outros conversores serão experimentados.
- O índice de conversor consiste nos números de linha dos conversores retornados pela propriedade FileConverters.
- AddToMru: True para adicionar esta pasta de trabalho à lista de arquivos usados recentemente.
- O valor padrão é False.
- Local: True salva os arquivos na linguagem do Microsoft Excel (incluindo as configurações do painel de controle).
- False (padrão) salva arquivos na linguagem do Visual Basic for Applications (VBA).
- CorruptLoad: Pode ser uma das seguintes constantes: xlNormalLoad, xlRepairFile e xlExtractData.
- O comportamento padrão se nenhum valor for especificado é xlNormalLoad e não tentará a recuperação quando iniciado por meio do OM.
Agora vamos para algumas dicas de formas de abrir uma Pasta de Trabalho.
Pasta de Trabalho protegida por senha
Em primeiro lugar, vamos aprender como abrir uma Pasta de Trabalho protegida por senha.
No exemplo abaixo, estamos tentando abrir um arquivo chamado Teste.xlsx que se encontra na pasta Arquivos do meu computador na unidade C:.
A senha deste arquivo é abc123.
Workbooks.Open “C:\Arquivos\Teste.xlsx”, , , Password:=”abc123″
Abrir Pasta de Trabalho somente leitura
No código abaixo vamos abrir um arquivo chamado Teste, somente como leitura. Neste caso, não podemos modificá-lo, mas, podemos salvar uma cópia.
Workbooks.Open “C:\Arquivos\Teste.xlsx”, , True
Abrir todas as Pastas de Trabalho de uma pasta do computador
O código abaixo possibilitar abrir várias pastas de trabalho de uma só vez.
Sub abrir_pastas_folder()
Dim wb As Workbook
Dim strFolder As String
Dim strFile As String
strFolder = “C:\Arquivos\”
strFile = Dir(strFolder & “*.xls*”)
Do While strFile <> “”
Set wb = Workbooks.Open(strFolder & strFile)
strFile = Dir
Loop
End Sub
E aí gostou das dicas?
Neste post te ensino um pouco mais de VBA, ou seja, como criar abas usando código.
Qualquer dúvida, poste aí embaixo nos comentários. Até a próxima!
2 Comentários
Boa tarde. Preciso urgentemente de sua ajuda: qual código de VBA poderia utilizar para copiar a uma planilha inteira de uma pasta de trabalho Excel e colar em várias outras pastas de trabalho Excel já existentes em uma em um mesmo diretório? Teria como copiar apenas a formatação da planilha inteira?
Jeff, bom dia!
Veja se o código abaixo serve para você.
Sub CopiarFormatacaoParaOutrasPastas()
Dim pastaOrigem As Workbook
Dim pastaDestino As Workbook
Dim caminho As String
Dim arquivo As String
Dim planilhaOrigem As Worksheet
Dim planilhaDestino As Worksheet
‘ Defina o caminho da pasta de trabalho original
caminho = “C:\Caminho\Para\Sua\Pasta\De\Trabalho\”
‘ Substitua “SuaPastaOriginal.xlsx” pelo nome da sua pasta de trabalho original
arquivo = “SuaPastaOriginal.xlsx”
‘ Abra a pasta de trabalho original
Set pastaOrigem = Workbooks.Open(caminho & arquivo)
‘ Substitua “PlanilhaOriginal” pelo nome da sua planilha original
Set planilhaOrigem = pastaOrigem.Sheets(“PlanilhaOriginal”)
‘ Itere sobre todos os arquivos na mesma pasta
Dim fileName As String
fileName = Dir(caminho & “*.xlsx”)
Do While fileName <> “”
‘ Verifique se o arquivo não é o original
If fileName <> arquivo Then
‘ Abra a pasta de trabalho de destino
Set pastaDestino = Workbooks.Open(caminho & fileName)
‘ Substitua “PlanilhaDestino” pelo nome da sua planilha de destino
Set planilhaDestino = pastaDestino.Sheets(“PlanilhaDestino”)
‘ Copie a formatação da planilha original para a planilha de destino
planilhaOrigem.Cells.Copy
planilhaDestino.Cells.PasteSpecial Paste:=xlPasteFormats
‘ Feche a pasta de trabalho de destino sem salvar as alterações
pastaDestino.Close SaveChanges:=False
End If
‘ Obtenha o próximo arquivo na pasta
fileName = Dir
Loop
‘ Feche a pasta de trabalho original sem salvar as alterações
pastaOrigem.Close SaveChanges:=False
End Sub
Aí neste caso você tem que substituir as informações do seu computador e nomes das planilhas.