Вы находитесь на странице: 1из 8

Ejecutar macros al iniciar archivo de

Excel
BY SERGIO ALEJANDRO CAMPOS JANUARY 30, 2015

Una de las preguntas ms socorridas en temas de Excel es Cmo ejecutar una


macro al abrir un archivo de Excel.
La respuesta a la anterior pregunta es una de las opciones ms sencillas de hacer
y la vamos a ver en este artculo.

Cmo lo hacemos
Estando en Excel y con nuestro archivo abierto deberemos de abrir el IDE de
vba. Para abrirlo tenemos 2 opciones:
1. Presionar ALT + F11.
2. Ir a la pestaa de Desarrollador (en Excel 2010 aparece como Programador)
y presionar el botn de Visual Basic.
Cuando tengamos abierto el IDE de vba nos dirigimos al panel izquierdo y
veremos una lista con los nombres de los archivos que tengamos abiertos, incluso
los complementos instalados.
Ubicamos el nombre de nuestro archivo y damos click en el signo de ms + a la
izquierda del nombre, para desplegar los objetos del archivos.
Damos doble click en el objeto ThisWorkbook.

Figura 1. Vemos el objeto ThisWorkbook en el IDE de vba.


Ahora nos iremos a la parte derecha de la ventana, la parte blanca. Damos click
en el ComboBox que tiene la leyenda (General) y elegimos Workbook.

Figura 2. Evento Open en Excel vba.


Al presionar en la opcin Workbook notarn que se aade un cdigo en la parte
inferior. El cdigo que se aade es el evento Open que servir para ejecutar las
macros que deseemos al abrir el archivo, siempre y cuando estn dentro de ese
evento.

Anexos
Artculos donde usamos el evento Open del objeto ThisWorkbook.
1. Lanzar tu propio men contextual al dar click derecho en las etiquetas de
hojas de Excel
2. Usar No volver a mostrar este mensaje modificando el Registro de
Windows desde Excel
3. Funciones personalizadas UDF en Excel disponibles en todos los archivos
abiertos
4. Mostrar mensaje de los que cumplen aos el da de hoy en Excel
5. Add-in para manipulacin de texto en Excel
6. Mostrar hojas en Excel ingresando una contrasea
7. Crear categora y descripcin para funciones personalizadas UDF en Excel
8. Macro para crear un log y saber cuntas veces se abre un archivo de Excel
9. Prohibir el acceso a las macros de Excel con Alt + F11
10. Hora real en Excel con OnTime
11. Ejecutar macro dependiendo del nombre de usuario de Excel

Funciones personalizadas UDF en


Excel disponibles en todos los
archivos abiertos
BY SERGIO ALEJANDRO CAMPOS MARCH 4, 2014

Siguiendo con el tema de funciones personalizadas (UDF), tenemos 2 funciones


que anteriormente ya les haba compartido en este Blog, con la salvedad de que
vamos a ver cmo las podemos tener siempre disponibles en todos los archivos
abiertos, adems de crear una categora que las aloje.

Funciones siempre disponibles


Para que una funcin personalizada est siempre disponible primeramente
deberemos tener el cdigo de dicha funcin en un archivo de Excel, ya sea con
extesin .xls o .xlsm. Posteriormente deberemos guardar nuestro archivo como
complemento de Excel y aadirlo a la lista de complementos.

Cmo lo hacemos
La funcin que usaremos es ExtraeNumero y el cdigo es el siguiente.
Function ExtraeNumeros(celda As Variant)
Dim Largo As Integer
Dim i As Integer
Dim Valor As String
Dim Valor1 As String
Application.Volatile
Definimos el largo de la celda
Largo = Len(celda)
Recorremos cada caracter de la celda y validamos
sin es nmero
For i = 1 To Largo
Valor = Mid(celda, i, 1)
If Asc(Valor) >= 48 And Asc(Valor) <= 57 Then
Valor1 = Valor1 & Valor
Else
End If
Next i

El valor concatenado de todos los nmeros los asignamos


como resultado de la funcin
ExtraeNumeros = Valor1
End Function

Crear categora para nuestra funcin


Para que nuestra funcin tenga su propia categora, usamos el siguiente cdigo
tambin en el objeto ThisWorkbook.

Private Sub Workbook_Open()

Call DescribeFunctionExtraeNumeros

End Sub
El cdigo que describe la categora de la funcin y sus argumentos
Private Sub DescribeFunctionExtraeNumeros()
Dim NombreFunc As String

'nombre de la funcin

Dim DescFunc As String

'descricin de la funcin

Dim Categoria As String

'categora de la funcin

Dim DescArg(1 To 3) As String 'descripcin de los argumentos


'
NombreFunc = "ExtraeNumeros"
DescFunc = "Devuelve los caracteres numricos de una referencia."
Categoria = "MiCategoria"
DescArg(1) = "Es la celda de donde se obtendrn los caracteres numricos."
'
Application.MacroOptions _
Macro:=NombreFunc, _
Description:=DescFunc, _
Category:=Categoria, _
ArgumentDescriptions:=DescArg
End Sub

Guardar como complemento e instalarlo


Para cualquier modificacin a futuro y como lo comentaba anteriormente,
primero guardamos nuestro archivo en formato de Excel .xls o .xlsm. Cuando

tengamos el cdigo en los mdulos ahora lo guardaremos como complemento


con extensin .xla o .xlam. La diferencia es que los complementos .xlam slo
pueden abrir en Excel 2007 y posteriores. Por default los complementos se
guardan en C:UsersUsuarioAppDataRoamingMicrosoftComplementos.

Figura 1. Guardar archivo de Excel como complemento.


Ya guardado nuestro complemento procedemos a instalarlo. En la
pestaa Archivoelegimos Opciones. En el formulario
de Opciones elegimos Complementos y despus damos click en el botn Ir. En
el formuario Complementos damos click en el botn Examinar y buscamos
nuestro complemento en la ruta donde lo guardaron. Se aadir a la lista de
complementos.

Figura 2. Lista de complementos.


Al instalar el complemento veremos nuestra funcin dentro de la categora
llamada MiCategoria.

Figura 3. UDF y categoria personalizada.

Anexos
:: Descargar los archivos .xlsm y .xlam

Referencias
Funciones personalizadas
Complementos (add-ins)