VBA FreeFile

Excel VBA FreeFile

FreeFile é uma função em VBA que está disponível apenas como uma função VBA, não como uma função de planilha. A função VBA FreeFile retorna o número inteiro exclusivo para o arquivo que é aberto e preserva o número para o próximo número de arquivo disponível.

Normalmente, abrimos arquivos de nosso computador para escrever algo ou apenas para leitura, enquanto nos referimos a esses arquivos, devemos nos referir com um número inteiro único. A função VBA FreeFile nos permite determinar aquele número inteiro exclusivo a ser atribuído para abrir o arquivo para ler, gravar e abrir arquivos usando o VBA.

Agora observe a sintaxe da instrução OPEN.

ABRIR [Endereço do caminho do arquivo] para [Modo para abrir] como [Número do arquivo]

Endereço do caminho do arquivo: Precisamos mencionar o endereço do arquivo em nosso computador que estamos tentando abrir.

Modo de abertura: Ao abrir o arquivo, precisamos estar cientes de que tipo de modelo vamos aplicar. Podemos usar três modos aqui, “Input Mode”, “OutPut Mode” e “Append Mode”.

Modo de entrada para ler apenas o arquivo.

Modo de saída para apagar os dados existentes e inserir novos dados.

Modo anexo para adicionar novos dados enquanto retém os dados existentes.

Número do arquivo: Com este argumento, podemos nos referir ao arquivo que estamos abrindo. Aqui, a função “FreeFile” desempenha um papel vital e retorna o número inteiro único.

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

Você pode baixar este modelo VBA FreeFile Excel aqui - Modelo VBA FreeFile Excel

Agora, olhe para o código abaixo.

Código:

 Sub FreeFile_Example1 () Dim Path As String Dim FileNumber As Integer Path = "D: \ Articles \ 2019 \ File 1.txt" FileNumber = FreeFile Abrir caminho para saída como FileNumber Path = "D: \ Articles \ 2019 \ File 2.txt "FileNumber = FreeFile Abrir caminho para saída como FileNumber End Sub 

Agora deixe-me decodificar o código acima para você entender.

Primeiro, declarei duas variáveis.

 Dim Path As String, Dim FileNumber As Integer 

Em seguida, atribuí o caminho do arquivo com seu nome.

Caminho = "D: \ Artigos \ 2019 \ Arquivo 1.txt"

Então, para mais uma variável, atribuí a função FREEFILE.

FileNumber = FreeFile

Em seguida, usei a instrução Open para abrir o arquivo de texto no caminho de arquivo mencionado acima.

 Abrir caminho para saída como FileNumber

Ok, agora irei executar o código linha por linha pressionando a tecla F8 e ver o valor da variável “FileNumber”.

Ele está mostrando o número do arquivo como 1. Portanto, a função de arquivo livre reserva automaticamente esse número para o arquivo de abertura. Enquanto isso, nenhum outro arquivo é aberto.

Agora vou continuar executando a próxima linha do código VBA e ver qual é o número do arquivo se pular para a próxima linha.

Agora diz 2. Portanto, a função FreeFile reserva o número inteiro único 2 para o segundo arquivo de abertura.

A função FreeFile sempre retorna 1 se fecharmos o arquivo do Excel

Uma coisa que precisamos observar é a função VBA “FreeFile” sempre retorna 1 se fecharmos o arquivo aberto antes de abrir o segundo arquivo Excel.

Por exemplo, observe o código abaixo.

Código:

 Sub FreeFile_Example2 () Dim Path As String Dim FileNumber As Integer Path = "D: \ Articles \ 2019 \ File 1.txt" FileNumber = FreeFile Abrir caminho para saída como FileNumber Fechar FileNumber Path = "D: \ Articles \ 2019 \ File 2 .txt "FileNumber = FreeFile Abrir caminho para saída como FileNumber Close FileNumber End Sub 

Agora irei executar novamente o código linha por linha pressionando a tecla F8.

Diz 1, como de costume.

Agora irei progredir para o próximo nível.

Mesmo na segunda tentativa, diz 1.

A razão para isso é que, como usamos a instrução Fechar arquivo, o FreeFile reconhece o arquivo recém-aberto como o novo e retorna o número inteiro como 1.