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

  1. Inicie Excel o, si ya tiene Excel abierto, cree un nuevo libro vacío.

  2. Abra el Editor de Visual Basic desde la pestaña Desarrollador, vaya a la pestaña Desarrollador.

  3. Haga clic en Visual Basic (teclas: ALT + F11), se abrirá el Editor de Visual Basic.

  4. 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.

  1. 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.

ArrowAddingModule

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

ArrowAddingUDFCode

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)

ArrowTestingFunction

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.

ArrowSavingAddin

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].

ArrowInstallingAddin

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]