Excel VBA FreeFile

Com que frequência, como usuário do Excel, você abre um arquivo e trabalha no mesmo? Com muita frequência, certo? Mais uma vez, é possível automatizar as tarefas de abertura do arquivo no Excel usando uma poderosa ferramenta VBA, que permite gravar macros e, por fim, automatizar todas as tarefas, começando pela abertura de um arquivo de um determinado local para uso, salvar e fechá-lo da mesma maneira. caminho. Ao falar sobre como automatizar o processo de abertura e fechamento de arquivos através do VBA, torna-se muito importante indexar o arquivo para que o sistema possa identificar qual arquivo usar no momento da execução. Temos uma função disponível no VBA chamada FreeFile que serve a esse propósito.

O que é a função VBA FreeFile?

O VBA FreeFile é uma função categorizada na função VBA que permite ao sistema reservar um número para o próximo arquivo a ser aberto em Saída de entrada de arquivo VBA para uma experiência de codificação suave e redução de erros desnecessários no seu código. Quando você abre um arquivo através do IO do arquivo VBA (entrada / saída), torna-se absolutamente obrigatório atribuir um número exclusivo a esse arquivo, pois você pode ter vários arquivos no local que você está prestes a usar para ler, gravar e abrir os objetivos através do seu código. Como o sistema sabe qual arquivo de todos aqueles que você deseja abrir? A função VBA FreeFile identifica o número exclusivo que atribuímos ao arquivo e disponibiliza para você abrir, ler ou gravar no VBA.

A sintaxe da função FreeFile é a seguinte:

Essa função usa apenas um argumento RangeNumber que possui os valores padrão como zero (0) e um (1). Se você especificar zero, o número do arquivo será atribuído através do intervalo de números de 1 a 255, passo a passo, para cada arquivo que você abrir. Se você especificar um, o número do arquivo será atribuído no intervalo de 256 a 511, passo a passo, para cada arquivo que você abrir. Se nenhum RangeNumber especificado, zero será considerado por padrão.

Como usar a função FreeFile no Excel VBA?

Abaixo estão os diferentes exemplos para usar a função FreeFile no Excel VBA.

Você pode fazer o download deste modelo do VBA FreeFile Excel aqui - Modelo do VBA FreeFile Excel

VBA FreeFile - Exemplo # 1

Siga as etapas abaixo para usar a função FreeFile no Excel VBA.

Etapa 1: abra um novo Editor do Visual Basic (VBE) clicando no botão Visual Basic na guia Desenvolvedor presente no arquivo do Excel ou pressionando o botão Alt + F11 simultaneamente.

Etapa 2: Insira um novo módulo no VBE. Clique no botão Inserir . Selecione Módulo na lista de opções disponíveis em Inserir.

Etapa 3: defina um novo subprocedimento que possa conter sua macro.

Código:

 Sub Exemplo_1 () End Sub 

Etapa 4: defina duas novas variáveis, arquivo_1 e arquivo_2 como um número inteiro. Essas duas variáveis ​​conterão os números que atribuímos a cada arquivo que abrirmos em toda a macro.

Código:

 Sub Example_1 () Dim file_1 As Inteiro Dim file_2 As Inteiro End Sub 

Etapa 5: use o operador de atribuição para atribuir o valor inteiro 1 à variável file_1 com a ajuda do VBA FreeFile.

Código:

 Sub Example_1 () Dim file_1 As Inteiro Dim file_2 As Inteiro file_1 = FreeFile End Sub 

Etapa 6: Agora, use a instrução Open, que pode ser usada para abrir um arquivo no VBA.

Código:

 Sub Exemplo_1 () Dim file_1 Como Inteiro Dim file_2 Como Inteiro file_1 = FreeFile Abra "D: \ Excel Escrita de Conteúdo \ TextFile_1.txt" Para Saída Como Arquivo_1 End Sub 

Aqui, especificamos o caminho em que o arquivo está localizado. A instrução For fornece opções como como você deseja abrir o arquivo (por exemplo, como uma saída) e a instrução As especifica o número do arquivo que especificamos usando a instrução FreeFile.

Etapa 7: Siga as etapas 5 e 6 para atribuir um novo número ao segundo arquivo através da variável file_2 e abra-o.

Código:

 Sub Exemplo_1 () Dim file_1 Como Inteiro Dim file_2 Como Inteiro file_1 = FreeFile Aberto "D: \ Excel Escrita por Conteúdo \ TextFile_1.txt" Para Saída Como file_1 file_2 = FreeFile Aberto "D: \ Excel Escrita por Conteúdo \ TextFile_2.txt" Para Saída Como arquivo_2 End Sub 

Etapa 8: Agora, gostaríamos de ver os números que realmente são atribuídos a ambos os arquivos de texto. Você pode executar cada linha uma por uma com a ajuda da tecla F8. No entanto, a saída não será visível para você. Nem no arquivo do Excel nem na janela Imediata. Por favor, adicione a seguinte instrução MsgBox que exibe uma caixa de mensagem com os números para cada arquivo.

Código:

 Sub Exemplo_1 () Dim file_1 Como Inteiro Dim file_2 Como Inteiro file_1 = FreeFile Abrir "D: \ Excel Escrita de Conteúdo \ TextFile_1.txt" Para Saída Como file_1 file_2 = FreeFile Aberto "D: \ Excel Escrita de Conteúdo \ TextFile_2.txt" Para Saída Como file_2 MsgBox "O valor do arquivo_1 é:" & arquivo_1 & Chr (13) e "O valor do arquivo_2 é:" & arquivo_2 End Sub 

Nesta linha de código, a primeira linha da caixa de mensagem conterá o texto "o valor do arquivo_1 é:" e o valor numérico atribuído usando a função FreeFile. Chr (13) permite que a próxima linha apareça. A próxima linha da caixa de mensagem exibirá “O valor do arquivo_2 é:” e o número atribuído ao segundo arquivo.

Etapa 9: execute esse código pressionando o botão Executar ou pressionando a tecla F5.

É assim que a função FreeFile permite atribuir o número ao arquivo que você deseja abrir, ler e fechar no VBA.

VBA FreeFile - Exemplo # 2

Se fecharmos o arquivo que abrimos toda vez, o novo arquivo que abrirmos sempre terá um número de série como 1 toda vez que for aberto. Siga as etapas abaixo para ver isso.

Etapa 1: defina um novo subprocedimento que possa conter sua macro.

Código:

 Sub Example_2 () End Sub 

Etapa 2: defina duas variáveis file_1 e file_2 como um número inteiro dentro do sub-procedimento recém-definido.

Código:

 Sub Exemplo_2 () Dim arquivo_1 como inteiro Dim arquivo_2 como inteiro End Sub 

Etapa 3: Agora, use o FreeFile para atribuir um número ao arquivo fornecido e a instrução Open para abrir esse arquivo no local em que o temos.

Código:

 Sub Example_2 () Dim file_1 Como Inteiro Dim file_2 Como Inteiro file_1 = FreeFile Abra "D: \ Excel Escrita de Conteúdo \ TextFile_1.txt" Para Saída Como Arquivo_1 End Sub 

Etapa 4: use uma instrução MsgBox para adicionar uma caixa de mensagem para o número dos primeiros arquivos.

Código:

 Sub Example_2 () Dim file_1 Como Inteiro Dim file_2 Como Inteiro file_1 = FreeFile Abrir "D: \ Excel Escrita de Conteúdo \ TextFile_1.txt" Para Saída Como arquivo_1 MsgBox "O valor para o arquivo_1 é:" & file_1 End Sub 

Etapa 5: use uma instrução Close para fechar o primeiro arquivo que você abriu através do VBA.

Código:

 Sub Exemplo_2 () Dim file_1 Como Inteiro Dim file_2 Como Inteiro file_1 = FreeFile Abrir "D: \ Excel Escrita de Conteúdo \ TextFile_1.txt" Para Saída Como arquivo_1 MsgBox "O valor do arquivo_1 é:" & arquivo_1 Fechar arquivo_1 End Sub 

Etapa 6: Agora, siga o mesmo procedimento da Etapa 5, Etapa 6, Etapa 7, mas para o segundo arquivo. Inclui a atribuição de valor à variável file_2 usando a função FreeFile e abrindo-a com a ajuda da instrução Open, usando MsgBox para exibir o número do arquivo para o segundo arquivo e, finalmente, fechando o segundo arquivo.

Código:

 Sub Exemplo_2 () Dim file_1 Como Inteiro Dim file_2 Como Inteiro file_1 = FreeFile Aberto "D: \ Excel Escrita de Conteúdo \ TextFile_1.txt" Para Saída Como arquivo_1 MsgBox "O valor do arquivo_1 é:" & file_1 Fechar arquivo_1 file_2 = FreeFile Aberto "D : \ Excel Content Writing \ TextFile_2.txt "Para saída como arquivo_2 MsgBox" O valor para arquivo_2 é: "& arquivo_2 Fechar arquivo_2 End Sub 

Etapa 7: execute este código pressionando o botão Executar ou F5.

A primeira caixa de mensagem representa o valor do arquivo_1, que parece ser 1. A segunda caixa de mensagem representa o valor do arquivo_2, que também parece ser 1. Essa alteração existe porque usamos a instrução close para fechar os arquivos um a um. Por isso, ao iniciar um novo arquivo, toda vez que o arquivo antigo e seu número desaparecerem da memória do sistema, o próximo arquivo será considerado um novo arquivo com números a partir de 1.

Coisas para lembrar

  • O FreeFile retorna um número inteiro exclusivo para todos os arquivos que abrimos, lemos e fechamos através do VBA File IO.
  • O FreeFile possui dois valores para o argumento RangeNumber (que é opcional). Zero normalmente atribui o número entre o intervalo de 1 a 255 e um atribui os números de 256 a 511.

Artigos recomendados

Este é um guia para o VBA FreeFile. Aqui discutimos como a função FreeFile permite atribuir o número ao arquivo que você irá abrir, ler, fechar no Excel VBA, juntamente com exemplos práticos e modelo de Excel para download. Você também pode consultar nossos outros artigos sugeridos -

  1. O arquivo de verificação do VBA existe | Modelo do Excel
  2. Subscrito VBA fora do intervalo (exemplos)
  3. Função GetObject no Excel VBA
  4. Como usar o formato numérico no VBA?
  5. Ambiente VBA

Categoria: