Construir un complemento de Excel en Microsoft Excel
Complementos de Excel
Un complemento de Excel es un archivo (generalmente con una extensión .xla o .xlam) que Excel puede cargar cuando se inicia. El archivo contiene código VBA que agrega funcionalidad adicional a Excel, generalmente en forma de nuevas funciones.
Los complementos proporcionan una manera excelente de aumentar el poder de Excel y son el vehículo ideal para distribuir sus funciones personalizadas. Excel se envía con una variedad de complementos listos para que los cargue y comience a usar, y también están disponibles muchos complementos de terceros.
Este artículo le muestra cómo escribir una función personalizada usando Excel VBA y cómo guardarla e instalarla como un complemento. Las funciones personalizadas a menudo se denominan UDF (funciones definidas por el usuario).
Escribiendo la función definida por el usuario
Un complemento puede contener tantas UDF (funciones definidas por el usuario) como desee, y puede agregar más últimamente, simplemente abriendo y editando el archivo del complemento.
Paso 1: Agregue un módulo de código a un nuevo libro de trabajo
-
Inicie Excel o, si ya tiene Excel abierto, cree un nuevo libro vacío.
-
Abra el Editor de Visual Basic desde la pestaña Desarrollador, vaya a la pestaña Desarrollador.
-
Haga clic en Visual Basic (teclas: ALT + F11), se abrirá el Editor de Visual Basic.
-
En el Editor de Visual Basic, seleccione VBAProject en el panel Explorador de proyectos. Esto selecciona el libro de trabajo vacío.
Si el Explorador de proyectos no está visible, ábralo yendo a Ver> Explorador de proyectos.
-
En el menú Insertar, elija Módulo. Esto agrega un nuevo módulo de código vacío al libro de trabajo seleccionado. También verá que el módulo aparece en el panel Explorador de proyectos.
Paso 2: Ingrese el código de la función definida por el usuario
En la ventana de código, escriba el código de Función definida por el usuario de edad
Paso 3: Pruebe la función
Puede probar la función de inmediato. Cambie a Excel y en su libro de trabajo vacío (el mismo que está usando para crear el módulo de código de la función) ingrese una fecha en una celda. En otra celda, ingrese su función de la misma manera que usaría una de las funciones integradas de Excel, p. Ej. = Edad (A1)
Una UDF está disponible para todos los libros abiertos siempre que su libro de trabajo anfitrión (el libro de trabajo que contiene el módulo de código de la UDF) está abierto. Sin embargo, si cierra el libro de trabajo del host e intenta usar la función en un libro de trabajo diferente, tendrá un error. El otro libro de trabajo no puede encontrar la función, entonces el #NAME? aparece el error.
Para superar el error de encuentro, se debe declarar UDF dentro de un complemento de Excel y asignar un complemento de Excel a la aplicación de Excel.
Creando un complemento de Excel
Guarde el libro de trabajo como un complemento
El libro de trabajo que contiene su módulo de código ahora debe guardarse como un archivo de complemento de Excel (.xla o .xlam).
En la ventana de Excel, vaya a Archivo> Guardar para abrir el cuadro de diálogo Guardar como. Ingrese un nombre para su archivo de complemento (se aplican las reglas habituales de nomenclatura de archivos) y use la opción Guardar como tipo: para cambiar el tipo de archivo a Complemento de Microsoft Excel (.xla) o (.xlam).
Antes de hacer clic en [Aceptar], compruebe la ubicación en la que está guardando el archivo de complemento.
Finalmente haga clic en [Aceptar] para aceptar sus cambios. Su complemento ahora está listo para la instalación y se puede distribuir a otros usuarios si es necesario.
Instalación del complemento
Vaya a Herramientas> Complementos para abrir el cuadro de diálogo Complementos. Si ha almacenado su complemento en la ubicación predeterminada, verá su nombre en la ventana Complementos disponibles: (si ha almacenado su complemento en una carpeta diferente, utilice el botón [Examinar] para encontrarlo ).
Para instalar su complemento, marque la casilla de verificación junto al nombre de su complemento y haga clic en [Aceptar].
Tan pronto como se instale el complemento, sus funciones estarán disponibles en Excel. Encuéntrelos en la sección Definidos por el usuario del Asistente de funciones (herramienta Pegar función) o simplemente escríbalos en una celda como lo haría con cualquier función incorporada. El complemento permanecerá instalado hasta que regrese al cuadro de diálogo Complementos y lo desinstale quitando la marca de la casilla de verificación.
Realización de agregar UDF y cambios en un complemento
Su archivo de complemento puede contener tantos módulos y funciones personalizadas como desee. Puede agregarlos en cualquier momento.
Si su complemento está instalado, lo verá listado en el panel Explorador de proyectos del editor de VB. Busque el módulo que contiene sus funciones y realice las adiciones y cambios que desee. Si su complemento no está instalado, busque el archivo del complemento y haga doble clic en él para abrirlo en Excel. No podrá verlo en la ventana de Excel, pero aparecerá en el Explorador de proyectos del editor de VB.
¡Recuerde guardar sus cambios! Haga esto desde la ventana del editor de VB con Archivo> Guardar.
Siga a continuación el código
'Insert below code in Addin Option Explicit Function Age(DoB As Date) 'Gives a name to the function and declares that a single argument is needed, which must be a date. 'Checking whether Date of Birth is zero If DoB = 0 Then Age = "type the correct Date of Birth" Else 'If Date of Birth is not zero, compare the current month value with the Date of Birth Select Case Month(Date) 'If current month is before (i.e. less than) the month of date of birth, 'then they have not had their birthday, so their age is this year minus their birth year minus 1 Case Is < Month(DoB) Age = (Year(Date) - Year(DoB)) - 1 'If current month is same as the month of date of birth 'we need to know whether or not they have had their birthday yet Case Is = Month(DoB) 'If today date is equal to or past the day of their birthday, 'then they have had their birthday (or it is today) 'so their age is this year minus their birth year? 'otherwise their age is this year minus their birth year minus 1 If Day(Date) >= Day(DoB) Then Age = Year(Date) - Year(DoB) Else Age = Year(Date) - Year(DoB) - 1 End If 'If today?s month is after (i.e. greater than) the month of the person?s date of birth, 'they have had their birthday, so their age is this year minus their birth year. Case Is > Month(DoB) Age = Year(Date) - Year(DoB) 'Close the CASE statement End Select 'Close the IF statement End If 'Close the Function End Function
Si te gustó este blog, compártelo con tus amigos en Facebook y Facebook.
Nos encantaría saber de usted, háganos saber cómo podemos mejorar nuestro trabajo y hacerlo mejor para usted. Escríbanos a [email protected]