Está en la página 1de 7

Macro para obtener la ruta donde se encuentra ubicado el libro

Para continuar con la aplicacin de las Propiedades del Objeto Workbook,


vamos a utilizar esta vez la Propiedad Path. Seguro en alguna ocasin se nos
presenta la necesidad de identificar la ruta del libro de trabajo que estemos
utilizando ya sea para un proceso de automatizacin o para generar un
guardado en la misma carpeta a los nuevos libros; es aqu donde toma
importancia esta Propiedad Path
Propiedad Path: Con la aplicacin de esta propiedad, lo que podemos obtener
es la ruta donde se encuentra guardado el libro de trabajo actual o por lo
menos el que se encuentra Activo. Desde Excel abrimos el Editor VBA (Alt +
F11), insertamos un Mdulo (Clic derecho sobre el proyecto Excel, Insertar,
Mdulo:

Ingresamos el siguiente cdigo:


Sub ObtenerRutadelLibro()
MsgBox ("La ruta del Libro es " & ActiveWorkbook.Path)
End Sub
Queda de la siguiente manera en el Mdulo:
Veamos lo que significan cada una de las lneas:

1. La primera lnea Sub ObtenerRutadelLibro(), indica el inicio de la macro.

2. En esta segunda lnea se aplica la propiedad Path en un cuadro de


mensaje al combinarlo con el Objeto ActiveWorkbook y tomar de ste su
Ruta (Path)

3. La ltima lnea marca el fin (End) de la Macro o Subrutina (Sub).


Podemos ejecutar esta macro vinculndola a una autoforma dando clic derecho
sobre sta y seleccionamos la opcin Asignar Macro:

Del listado de Macros que aparece seleccionamos ObtenerRutadelLibro; luego


clic en Aceptar y ahora al dar clic en la autoforma nos aparece un mensaje
informativo como el siguiente:
Macro para obtener el nombre del Libro
Ya hemos pasado por los Eventos y Mtodos del Objeto Workbook el cual hace
referencia al Libro de trabajo con todos sus componentes. Vamos a ver ahora
en las siguientes entregas algunos cdigos asociados al uso de Propiedades
de este Objeto Workbook. En esta ocasin vamos a ver la aplicacin de la
Propiedad Name
Propiedad Name: Con la aplicacin de esta propiedad, lo que estamos
obteniendo es el Nombre del Libro de trabajo actual y que podemos utilizar
para mostrar en un mensaje o para hacer una validacin de algn proceso
masivo de guardado. Desde Excel abrimos el Editor VBA (Alt + F11),
insertamos un Mdulo (Clic derecho sobre el proyecto Excel, Insertar, Mdulo:

Ingresamos el siguiente cdigo:


Sub ObtenerNombredelLibro()
MsgBox ("El Nombre del Libro es " & ActiveWorkbook.Name)
End Sub
Queda de la siguiente manera en el Mdulo:

Veamos lo que significan cada una de las lneas:


1. La primera lnea Sub ObtenerNombredelLibro(), indica el inicio de la
macro.

2. En esta segunda lnea se aplica la propiedad Name en un cuadro de


mensaje al combinarlo con el Objeto ActiveWorkbook y tomar de este el
nombre (Name)

3. La ltima lnea marca el fin (End) de la Macro o Subrutina (Sub).


Podemos ejecutar esta macro vinculndola a una autoforma dando clic derecho
sobre sta y seleccionamos la opcin Asignar Macro:

Del listado de Macros que aparece seleccionamos ObtenerNombredelLibro;


luego clic en Aceptar y ahora al dar clic en la autoforma nos aparece un
mensaje informativo como el siguiente:
Obtener el nombre de cualquier hoja del libro

Vimos en la entrega pasada una aplicacin del Objeto WorkSheet mediante el


uso de la Propiedad Name; en realidad se trataba del Objeto ActiveSheet
mediante el cual estamos indicando que trabajamos con la Hoja Activa y de la
cual tomamos el nombre que aparece en la pestaa de hojas de Excel y lo
presentamos en un cuadro mensaje; en esta ocasin vamos a realizar algo
similar donde vamos a presentar el nombre pero de cualquier hoja que
indiquemos, es decir, podemos estar en la Hoja Control pero desde all, vamos
a mostrar el nombre de la tercera hoja que se encuentre en el libro.
Nuevamente vamos a utilizar la Propiedad Name:

Propiedad Name: Mediante el uso de esta Propiedad, podemos obtener el


Nombre que aparece en la pestaa de la Hoja desde el Libro de Excel:

En esta imagen, los nombres de las hojas son Control, Inventario y Recibos;
mediante la aplicacin de la Propiedad Name podemos obtener estos nombres.
Esto es til por ejemplo dentro de una macro ms robusta donde debamos
estar interactuando entre las distintas hojas para lo cual es necesario identificar
el nombre de cada hoja puesto que estos nombres se pueden estar cambiando
segn lo requiera el usuario (a no ser que implementemos una macro para
evitar cambiar el nombre la cual ya vimos en entregas pasadas).

Vamos al editor de Visual Basic, damos doble clic en la Hoja1 desde el


explorador de Proyectos:
Y pegamos el siguiente cdigo:

Sub MostrarNombreHoja3()

MsgBox Worksheets(3).Name

End Sub

Queda de la siguiente manera:

Veamos lo que significa cada cdigo:

Linea 1, Sub MostrarNombreHoja3(): Indica el inicio de la macro

Linea 2, MsgBox Worksheet(3).Name: con la instruccin MsgBox estamos


indicando a Visual Basic que presente un cuadro de mensaje el cual va a
presentar del Objeto ActiveSheet, el nombre de la hoja que se encuentra en la
posicin 3 mediante el uso de la Propiedad Name

Linea 3, End Sub: indica el final de la macro

La diferencia de esta macro con respecto a la que vimos en la entrega anterior


es que si vamos a obtener el nombre de cualquier hoja no lo podemos hacer
con la macro del ejercicio anterior, es decir, la macro de la entrega anterior solo
sirve para mostrar el nombre de la hoja activa; con este cdigo podemos
mostrar el nombre de cualquier hoja sin importar en cual hoja estamos
realizando la macro: observemos que en este ejercicio estamos ejecutando la
macro desde la Hoja1(Control) para mostrar el nombre de la Hoja3(Recibidos)

Probemos ejecutando esta macro con F5 y veremos el siguiente mensaje:

Finalmente podemos vincular esta macro a una Autoforma en la hoja de Excel


para que muestre el mensaje al dar clic.
"C:\Users\ReinaldoJos\Documents\PROGRAMAS EXCEL\FORMULARIOS
EXCEL"