Leer un archivo de texto línea por línea en VBA

Bilal Shahid 21 junio 2023
  1. Use Abrir para leer un archivo de texto línea por línea en VBA
  2. Use FileSystemObject con TextStream para leer un archivo de texto línea por línea en VBA
  3. Conclusión
Leer un archivo de texto línea por línea en VBA

¿Desea transferir todos los correos electrónicos almacenados en un archivo a Microsoft Excel para su posterior procesamiento? ¿O desea mantener la información de algunos candidatos preseleccionados en un archivo?

Puede realizar todas estas tareas de manera eficiente con la ayuda de programas automatizados simples.

Leer un archivo de texto en un programa es razonablemente necesario. Casi todos los demás códigos requieren la entrada de un archivo o la salida a un archivo; por lo tanto, es fundamental comprender cómo leer un archivo completo línea por línea, carácter por carácter, etc.

Este artículo enfatiza la lectura de un archivo de texto línea por línea. Puede seguir explorando los diferentes métodos para leer un archivo de texto e implementarlos de acuerdo con los requisitos.

Use Abrir para leer un archivo de texto línea por línea en VBA

Solo hay unas pocas opciones de VBA diferentes para abrir o cerrar un archivo. Solo unos pocos comandos están disponibles para abrir y cerrar un libro de trabajo, un archivo o una carpeta.

A continuación se muestra un fragmento de código que abre un archivo y lee todo el archivo, línea por línea.

Sub example()

    Dim FileNumber As Integer
    Dim Data As String

    FileNumber = FreeFile()
    Open "Filename" For Input As #FileNumber

    While Not EOF(1)
        Line Input #FileNumber, Data
        //Read a data line from the file
        //Perform any required actions on the file
    Wend

    Close #FileNumber
End Sub

El programa mencionado anteriormente es un fragmento de código simple que le permite abrir un archivo, leer datos y cerrarlo. Declara las variables FileNumber y Data a lo largo del código.

Para obtener el FileNumber, se utiliza la función FreeFile(). La función FreeFile() devuelve el siguiente número de archivo disponible para abrir el archivo.

El FileNumber devuelto por la función FreeFile() se utiliza en todo el programa para abrir el archivo, leerlo y cerrarlo.

Nota: Es imprescindible cerrar todos los archivos que se abren a lo largo del programa.

Después de que la función FreeFile() devuelva FileNumber, se utiliza la instrucción Open para abrir el archivo. Toma el nombre de archivo para Entrada o Salida y utiliza el siguiente Número de archivo disponible.

El archivo se lee línea por línea dentro del bucle While hasta que no se alcanza el final del archivo: While Not EOF(FileNumber). El bucle lee los datos línea por línea y almacena el flujo de datos en la variable Data.

Puede agregar las declaraciones de código dentro del bucle While si desea realizar alguna acción en los datos.

Dado que el archivo se abre para Entrada en este programa, los datos se leen dentro del bucle Mientras. Si el usuario abre los datos en el modo Salida, se puede usar la siguiente instrucción para escribir los datos en el archivo:

Write #FileNumber, "This is a sample data"

La declaración "Estos son datos de muestra" se escribe en el archivo usando el comando anterior.

Use FileSystemObject con TextStream para leer un archivo de texto línea por línea en VBA

La segunda solución requiere una referencia a Microsoft Scripting Runtime. Se utiliza el tipo de datos FileSystemObject, que le permite leer archivos.

Aquí hay un fragmento de código para leer un archivo línea por línea:

Dim fso As FileSystemObject: Set fso = New FileSystemObject
Set txtStream = fso.OpenTextFile(filePath, ForReading, False)

Do While Not txtStream.AtEndOfStream
    txtStream.ReadLine
Loop

txtStream.Close

Se declara un FileSystemObject llamado fso y se establece en la primera línea. La variable txtStream es un objeto TextStream devuelto cuando el archivo se abre para leer.

Un objeto TextStream permite al usuario abrir el archivo en modo de lectura, escritura o anexo.

Se utiliza un bucle Do While para analizar el archivo, línea por línea. El final del archivo se comprueba con txtStream.AtEndOfStream, y el archivo se lee con el comando ReadLine.

El fragmento de código menciona cómo leer un archivo línea por línea hasta el final. Si desea escribir una línea en el archivo, use TextStreamObject.WriteLine para enviar el texto al archivo.

Al final del programa, se cierra el archivo que se abrió para lectura.

Nota: El archivo se puede abrir en un modo a la vez; el usuario no puede escribir y leer desde el mismo objeto de archivo. Se deben crear diferentes objetos para abrir archivos en diferentes modos.

Conclusión

Puede abrir fácilmente un archivo, leer desde el archivo, escribir en el archivo y cerrar el archivo usando instrucciones simples de VBA. Puede usar Macros para realizar la misma tarea para diferentes archivos; por lo tanto, el poder de automatización que ofrece Microsoft Office es increíble y aplaudible.

Bilal Shahid avatar Bilal Shahid avatar

Hello, I am Bilal, a research enthusiast who tends to break and make code from scratch. I dwell deep into the latest issues faced by the developer community and provide answers and different solutions. Apart from that, I am just another normal developer with a laptop, a mug of coffee, some biscuits and a thick spectacle!

GitHub

Artículo relacionado - VBA File