VBA - Ler Arquivo de Texto em String

Este tutorial demonstrará como ler um arquivo de texto em uma string no VBA.

Podemos ler o arquivo de texto linha por linha ou como um arquivo inteiro.

Ler um arquivo de texto inteiro em uma string

O texto em um arquivo de texto geralmente é composto de várias linhas, separadas por delimitadores. Podem ser uma vírgula (“,”), uma vírgula com espaço (“,“), um ponto e vírgula (“;”), um ponto e vírgula com espaço (“;“), um espaço (““), uma tabulação (vbTab ) ou, em casos raros, qualquer outro caractere, como um til (~). As linhas normalmente são separadas por uma quebra de linha (vbCRLF).

A maneira mais fácil de ler um arquivo de texto inteiro em VBA é executar o código a seguir, que colocará todo o conteúdo do arquivo de texto em uma variável de string. Este procedimento usa a instrução VBA Open e a função VBA FreeFile.

12345678910 Sub ReadFile ()Dim iTxtFile As IntegerDim strFile As StringDim strFileText As StringstrFile = "C: \ Test \ TestFile.txt"iTxtFile = FreeFileAbrir strFile para entrada como FreeFilestrFileText = Input (LOF (iTxtFile), iTxtFile)Fechar iTxtFileEnd Sub

Também podemos ler um arquivo de texto em VBA usando o FileSystemObject. No código a seguir, usamos a vinculação tardia com o objeto do sistema de arquivos.

1234567891011 Sub ReadTextFile ()Dim strText As StringDim FSO como objetoDim TSO As ObjectDefina FSO = CreateObject ("Scripting.FileSystemObject")Defina TSO = FSO.OpenTextFile ("C: \ Test \ TestFile.txt")strText = TSO.ReadAllTSO.CloseDefinir TSO = NadaDefinir FSO = NadaEnd Sub

Também podemos usar a vinculação inicial no código e declarar o objeto do sistema de arquivos criando uma referência em nosso projeto do Excel para o objeto do sistema de arquivos.

1234567891011 Sub ReadTextFile ()Dim strText As StringDim FSO como Novo FileSystemObjectDim TSO As ObjectDefina FSO = CreateObject ("Scripting.FileSystemObject")Defina TSO = FSO.OpenTextFile ("C: \ Test \ TestFile.txt")strText = TSO.ReadAllTSO.CloseDefinir TSO = NadaDefinir FSO = NadaEnd Sub
wave wave wave wave wave