Cómo abrir un archivo, con macros en Excel.

Abrir un archivo con macros

Ya sabes crear macros y has hecho tus primeras pruebas básicas. Es hora de ir haciendo funciones más útiles que nos ayuden en nuestras aplicaciones de oficina. ¿Qué tal una macro que nos permita abrir un archivo?

Alex, uno de mis suscriptores, me consultó acerca de cómo podría abrir un archivo de Excel haciendo uso de macros para poder realizar algunas consultas sobre él. Así que decidí hacer un breve artículo en el que explico el procedimiento paso a paso ;)

Abrir un archivo con Macros.

La idea de la propuesta que tengo en mente, es que se muestre un cuadro de diálogo que te preguntará por la ubicación de tu archivo y, una vez que lo has seleccionado, ese archivo se abrirá inmediatamente. Así, pues, ¡vamos a ello!

Crea una función para tu código.

Lo primero que vas a hacer, es crear una función dentro de la cual vas a colocar todo el código que voy a mostrarte a continuación. Si aún tienes dudas de cómo crear una función en VBA, puedes pinchar aquí

La función que vas a crear, para el ejemplo, debe tener el nombre ‘abrirArchivo’.

El nombre del archivo y su ruta.

Primero, necesitas saber el nombre de tu archivo y “recordarlo” en una variable. Así pues, deberás crear una variable llamada ‘strArchivo’ y en ella almacenarás toda la ruta a tu archivo, incluída la extensión.

En mi caso, el archivo que quiero abrir se llama ‘MiArchivo.xls’ y la ruta en la que está guardado es ‘C:\MiCarpeta’.

Entonces, si junto todo, la ruta sería: ‘C:\MiCarpeta\MiArchivo.xls’.

En tu código, deberías de escribirlo así:

Nota

strArchivo = ‘C:\MiCarpeta\MiArchivo.xls’

Y con eso ya tendrías almacenado el nombre de tu archivo. Pero, ¿y si quisiera abrir un archivo diferente cada vez? Pues entonces, ¡lo haremos interactivo!

Usando el método GetOpenFilename

Para lograr que esto sea interactivo, necesitarás que el sistema te pregunte dónde está tu archivo cada vez que ejecutas el programa. Pero no haremos todo desde cero, sino que aprovecharemos el método GetOpenFilename que ya se encarga de hacer esto.

Simplemente reemplaza en tu código la parte donde tenías la ruta a tu archivo por lo siguiente:

Nota

Application.GetOpenFilename

Al final, el código que tengas, debe verse así:

Nota

strArchivo = Application.GetOpenFilename

Abriendo el archivo.

Bien, ya tienes la ruta completa de tu archivo. Ahora solo queda abrirlo directamente y, para esto, te ayudarás del método ‘OpenText’ del objeto ‘Workbooks’.

A este método debes pasarle el argumento ‘Filename’, en el cual asignarás el valor que tenías en la variable ‘strArchivo’.

La siguiente línea de código, debes escribirlo tal cual te muestro a continuación:

Nota

Workbooks.OpenText Filename: = strArchivo

Y hasta aquí ya has conseguido tu objetivo. Ahora verás que cuando ejecutas esta macro, se muestra un cuadro de diálogo donde eliges el archivo que quieres abrir y, a continuación, este se abre y se muestra en tu pantalla.

Abrir un archivo con macros

¿Y si el usuario cancela la acción?

Bueno, si el usuario cancela la acción se generará un error en tu programa que hará que este se caiga.

Abrir un archivo con macros

Entonces, ¿cómo evitarlo?

La solución está en una simple línea de código:

Nota

If strArchivo = False Then Exit Sub

Esta línea debes agregarla justo antes de la línea que se encarga de abrir el archivo, es decir, debe quedar así:

Nota

If strArchivo = False Then Exit Sub Workbooks.OpenText Filename:=strArchivo

Abrir un archivo con macros

¡Pero ahora quiero cerrarlo!

Tal y como se le ocurrió a Hugo Serrano (en los comentarios) se te puede ocurrir a ti que es necesario cerrar el archivo luego de abrirlo, así que para estos casos, puedes seguir los pasos que indico en esta entrada.

¿Cómo cerrar un archivo, usando macros?

¡Y hemos terminado!

Con estas pocas líneas de código, ya tienes un pequeño programa que se encarga de abrir un archivo de forma interactiva y que podrás integrar en tus nuevas aplicaciones para ampliar sus funcionalidades. ¿Muy útil, no crees? :D

Al final, debe quedarte un código similar a este que te muestro a continuación:

Nota

Sub abrirArchivo() strArchivo = Application.GetOpenFilename If strArchivo = False Then Exit Sub Workbooks.OpenText Filename:=strArchivo End Sub

Descargar el archivo terminado.

Si quieres descargar el archivo usado en este ejercicio, sólo sigue las instrucciones, es gratis.

Déjame tus comentarios y ayúdame a compartir este artículo.

Si te ha gustado este artículo o tienes alguna duda, déjamela en los comentarios. Y si crees que esta información puede ayudar a alguien más, ayúdame a difundirla en las redes sociales, usando los botones que aparecen más abajo. ¡Gracias! :)

¡Nos vemos!

Copia el URL corto para este artículo:

¿Te gusta lo que has visto hasta ahora?

Suscríbete a la primera versión del curso "Aprende Excel paso a paso" y recibe contenido adicional exclusivo para mis suscriptores.

Tu privacidad me interesa. 100% libre de SPAM

Comments

  1. Leonel Baquedano says

    Excelente ejemplo, Raymundo, realmente las Macros nos facilitan la vida, una vez que las diseñamos para hacer una determinada tarea, repetitiva.

  2. says

    Hola

    Excelente trabajo.

    ¿Sabes que sería genial?, integrar la instrucción que cierra el archivo que se abre, ya que en mi caso, mi macro solo necesitaba copiar información del libro abierto, y una vez copiada, el archivo ya no se necesita.

    Saludos.

  3. says

    Fold the foil sealing its contents after the contaminated decking has been removed, and dispose of as a regular waste (EPA recommendation). A Professional mold inspection completed by a mold inspector will give you an accurate assessment of mold growth in your home. It is a process of studying and identifying reasons for the fungus growth and identifying remedial measures to curb the expansion of mold growth.

  4. Leonardo says

    Raymundo Hola!

    Amigo, ando buscando una solución para una macro que quiero implementar pero no encuentro nada en buscando en google.

    No soy experto en VBA….. quisiera saber si es posible, desde un macro en excel, manipular la barra de herramientas de otro aplicativo, como ejemplo, necesito desde excel, poder ingresar a Lotus Notes, que vaya a “Edición” y luego “copiar”, puesto que necesito que me copie la hoja que estoy viendo en Lotus en el portapapeles y me pegue como texto en excel.

    Esto lo puedo hacer a mano, pero quisiera poder realizarlo con código VBA.

    Me posrías ayudar?

    Quedo atento y Gracias

    • says

      Hola, Leonardo.

      No creo que puedas acceder a los controles de LotusNotes usando simplemente Excel.

      Pero podrías tal vez (no se los detalles específicos de tu entorno) usar un LotusScript que copie el contenido, creas un objeto Excel.Application y pegas el valor en el interior.

      Es decir, lo haces igual, pero al revés.

      Saludos,

Trackbacks

  1. Información Bitacoras.com…

    Valora en Bitacoras.com: Ya sabes crear macros y has hecho tus primeras pruebas básicas. Es hora de ir haciendo funciones más útiles que nos ayuden en nuestras aplicaciones de oficina. ¿Qué tal una macro que nos permita abrir un archivo? TweetAl……

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *

Puedes usar las siguientes etiquetas y atributos HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>