xltoday.net

EXCEL 2007 TABLAS Y GRAFICOS


Excel y archivos Ascii

A veces queremos guardar datos en un archivo de texto (archivo Ascii), por ejemplo de tipo CSV o de tipo sequencial (posiciones fijas). Es decir, utilizar un archivo de texto como una sencilla base de datos.

Si los datos que tenemos que guardar son pocos, conviene guardarlos en un archivo Ascii en vez de una base de datos 'de verdad' como Access.

Hay que tener un cuenta que los datos guardados en archivos Ascii ocuparán más espacio que en una base de datos de verdad. Pero para guardar hasta unos mil líneas de texto no hay problema ninguno.



Comando OPEN

El OPEN nos hace posible crear/abrir un archivo de texto, para luego proceder a escribir a este archivo.

Hay tres modos:

Output

Abrir (o crear) el archivo (suprime todo ya grabado) para escribir. Es decir que, si el archivo existe, borrará todo los datos ya grabados.

Ejemplo: Open strArchivoTexto For Output As #f.

Append

Abrir (o crear) para escribir (seguir por la última línea).

Ejemplo: Open strArchivoTexto For Append As #f.

Input

Abrir para lectura (a Excel).

Ejemplo: Open strArchivoTexto For Input As #f.

Sobre la '#f': Para trabajar con el contenido de estos archivos hay que llamar a los archivos de una manera numérica. Si utilizamos el FREEFILE, no habrá que preocuparse de esta numeración.

Comando PRINT

El PRINT se emplea para la forma sequencial (posiciones fijas) = 'tal como está'. En los ejemplos abajo utilizaremos el comando PRINT.

Ejemplo: Print #f, "Fecha de hoy: " & Date

Comando WRITE

El WRITE se utiliza para la forma sequencial CSV (Comma Separated Value - Valor separado por coma). Esto significa que añadirá una coma entre cada bloque de texto. Esto ayuda a la hora de importar un archivo Ascii a Excel.

Ejemplo: Print #f, "Fecha de hoy: " & Date ; " Application.UserName
Cada bloque de texto se delimita del próximo por el carácter ';'.

Escribir archivo Ascii - OUTPUT


Sub Crear_Escribir_ArchivoAscii() Dim strNombreArchivo, strRuta, strArchivoTexto As String Dim f As Integer 'nombre y ruta del archivo de texto strNombreArchivo = "MiArchivoAscii.txt" strRuta = "C:\" strArchivoTexto = strRuta & strNombreArchivo 'abrimos el archivo para escribir f = FreeFile Open strArchivoTexto For Output As #f 'escribimos al archivo Print #f, "Fecha de hoy: " & Date Print #f, "Usuario: " & Application.UserName 'cerramos el archivo de texto Close f End Sub

Escribir archivo Ascii - APPEND


Sub Crear_Escribir_ArchivoAscii() Dim strNombreArchivo, strRuta, strArchivoTexto As String Dim f As Integer 'nombre y ruta del archivo de texto strNombreArchivo = "MiArchivoAscii.txt" strRuta = "C:\" strArchivoTexto = strRuta & strNombreArchivo 'abrimos el archivo para escribir f = FreeFile Open strArchivoTexto For Append As #f 'escribimos al archivo Print #f, "Fecha de hoy: " & Date Print #f, "Usuario: " & Application.UserName 'cerramos el archivo de texto Close f End Sub

Leer archivo Ascii - INPUT

Sub Leer_ArchivoAscii() Dim strNombreArchivo, strRuta, strArchivoTexto As String Dim f, i As Integer Dim strTexto As String 'nombre y ruta del archivo de texto strNombreArchivo = "MiArchivoAscii.txt" strRuta = "C:\" strArchivoTexto = strRuta & strNombreArchivo 'abrimos el archivo para lectura f = FreeFile Open strArchivoTexto For Input As #f 'leemos el archivo de texto a columna de Excel i = 1 While Not EOF(f) Line Input #f, strTexto Cells(i, 1) = strTexto i = i + 1 Wend 'cerramos el archivo de texto Close f End Sub