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

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 próximo número de arquivo disponível.

Normalmente, abrimos arquivos de nosso computador para escrever algo ou para somente 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, dê uma olhada na sintaxe da instrução OPEN.

ABRIR (endereço do caminho do arquivo) para (modo de 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 saber que tipo de modelo vamos aplicar. Podemos usar três maneiras aqui, "Modo de entrada", "Modo de saída" e "Modo de anexo".

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 - onde a função “FreeFile” desempenha um papel vital e retorna o número inteiro único.

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

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 do 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 um 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.

Artigos interessantes...