domingo, 23 de julio de 2017

MACRO PARA LEER ARCHIVOS DE TEXTO

Como el titulo lo indica el código que estudiaremos a continuación nos permitirá leer un archivo con extensión .txt usando macros VBA, pero además de esto aprenderemos el uso de la función SPLIT.

La macro hace lo siguiente:
  1. Recorre un archivo con extensión .txt separado por comas.
  2.  Genera una cadena de texto concatenando la información leída del archivo.
  3.  Utiliza la función Split para crear un vector.
  4.  Recorre el vector e imprime cada posición en la hoja de cálculo.

He creado un archivo de texto con el nombre de cinco países y sus capitales separado por comas:


1.     Recorrer el archivo .txt separado por comas.

Definimos las siguientes variables:


La variable vector () es un arreglo de tipo string al cual no le asignamos un número fijo de posiciones porque no sabemos cuántos elementos tendrá. La variable WS de tipo Excel.Worksheet , esta variable identifica la hoja de cálculo. La  variable Cadena de tipo string nos servirá para almacenar los valores que leamos del documento .txt. La variable miarchivo de tipo string almacena la ubicación del documento .txt. La variable texto también de tipo string almacena los valores que se van leyendo del documento .txt. La variable f de tipo entero será un contador que usaremos en el programa.


Asignamos a la variable ws la hoja de cálculo de trabajo. Asignamos a la variable miarchivo la ubicación de la hoja de texto. Abrimos el documento .txt e iniciamos la variable contador f en 0. Utilizamos un ciclo while  para recorrer el archivo de texto, para leer cada línea usamos: Line Input #1 , variable, aumentamos en uno el contador hasta que lleguemos al final del archivo.

2.     Genera una cadena de texto concatenando la información leída del archivo.

Dentro del ciclo while se ejecuta la siguiente instrucción cadena = cadena + texto + ",”. Esta instrucción une el valor de la variable cadena con lo leído del archivo .txt. En VBA usamos el símbolo (+) para unir cadenas.

3.     Utiliza la función SPLIT para crear un vector.

La función SPLIT retorna un vector unidimensional formado por un número específico de subcadenas. Para nuestro ejemplo creamos un vector usando la  función SPLIT así: vector = Split(cadena, ",", Len(cadena) - 1), previamente definimos la variable vector que contendrá el resultado de la función SPLIT, esta función recibe como parámetro una expresión de tipo string , para nuestro caso la variable cadena, un delimitador que para el ejemplo es la “,”. Un límite es decir la longitud del primer parámetro – 1. Para conocer la longitud del primer parámetro usamos la función LEN().

4.     Recorre un vector e imprime cada posición en la hoja de cálculo.

Recorremos el vector creado en el punto tres e imprimimos cada posición del vector en la hoja de cálculo:


Asignamos el valor 1 a la variable contador i, entramos en un ciclo while hasta que el vector en la posición i este vacío. Imprimimos el valor en la hoja de cálculo y aumentamos 1 al contador.

Aquí está el código completo:


Si te fue util este material compartelo en tus redes sociales. Puedes encontrar mas ejemplos como este en mi ebook puedes descargarlo haciendo click aquí.