VBA – Lendo um arquivo texto linha a linha (sem FileSystemObject)


Bom, como falei sobre o mesmo problema outro dia em C#, nada mais justo do que publicar em VBA também, até porque a dúvida surgiu no fórum também.

A rotina abaixo faz o trabalho de abrir e ler uma arquivo no formato texto linha a linha. A idéia é permitir alterar o código de tal forma que se for preciso fazer uma análise do conteúdo da linha, fica fácil de fazer:

Option Explicit
 
Public Sub LeArquivoTexto()
    Dim Arquivo As Integer
    Dim CaminhoArquivo As String
    Dim TextoArquivo As String
    Dim TextoProximaLinha As String
    Dim ContadorLinha As Long
 
    'Configura a leitura do arquivo
    Arquivo = FreeFile
    CaminhoArquivo = "C:\temp\arquivo.txt"
 
    'Abre o arquivo para leitura
    Open CaminhoArquivo For Input As Arquivo
    ContadorLinha = 1
    'Lê o conteúdo do arquivo linha a linha
    Do While Not EOF(Arquivo)
        Line Input #Arquivo, TextoProximaLinha
        TextoProximaLinha = TextoProximaLinha & vbCrLf
        TextoArquivo = TextoArquivo & TextoProximaLinha
    Loop
 
    'Coloca na janela de verificação imediata
    Debug.Print TextoArquivo
 
    'Fecha o arquivo
    Close Arquivo
 
End Sub

Como destacado no título do arquivo, a vantagem deste método, apesar de menos legível, é não precisar carregar a dependência da biblioteca do FileSystemObject, usando somente os recursos padrão do Visual Basic.

Bom proveito!

Comentários

comentários

2 comentários em “VBA – Lendo um arquivo texto linha a linha (sem FileSystemObject)”

  1. Boa tarde,

    Tenho um código bem semelhante a esse.
    E nesse arquivo uma das linhas vem com o seguinte texto:

    ” & Range(“L2″).Value & ”

    e preciso que o excel consiga atribuir o texto ” & Range(“L2″).Value & ” concatenando com o texto da planilha, é possivel transformar essa parte do texto do arquivo.txt e pegar o valor da celula L2?

    Obrigado

Os comentários estão fechados.