Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Productos
Buscar
Excel Más
Aunque Excel incluye una multitud de funciones de hoja de cálculo integradas, lo más
probable es que no tenga una función para cada tipo de cálculo que realice. Los diseñadores
de Excel posiblemente no podían anticipar las necesidades de cálculo de cada usuario. En su
lugar, Excel le proporciona la capacidad de crear funciones personalizadas, que se explican en
este artículo.
Las funciones personalizadas, como las macros, usan el Visual Basic para Aplicaciones de
programación de Visual Basic para Aplicaciones (VBA). Difieren de las macros de dos
maneras significativas. En primer lugar, usan procedimientos de función en lugar de
procedimientos sub. Es decir, comienzan con una instrucción Function en lugar de una
instrucción Sub y terminan con La función fin en lugar de Finalizar sub. En segundo lugar,
realizan cálculos en lugar de realizar acciones. Determinados tipos de instrucciones, como las
instrucciones que seleccionan y formatear rangos, se excluyen de las funciones
personalizadas. En este artículo, aprenderá a crear y usar funciones personalizadas. Para crear
funciones y macros, trabaje con el Editor de Visual Basic (VBE),que se abre en una nueva
ventana independiente de Excel.
Supongamos que su empresa ofrece un descuento de cantidad del 10 por ciento en la venta
de un producto, siempre que el pedido sea para más de 100 unidades. En los párrafos
siguientes, mostraremos una función para calcular este descuento.
1. Presione Alt+F11 para abrir el Editor de Visual Basic (en mac, presione
FN+ALT+F11)y, a continuación, haga clic en Insertar > módulo. Aparecerá una
ventana de módulo nueva en el lado derecho del editor de Visual Basic.
DISCOUNT = Application.Round(Discount, 2)
End Function
Nota: Para que el código sea más legible, puede usar la tecla Tab para aplicar
sangría a las líneas. La sangría es solo para su beneficio y es opcional, ya que el
código se ejecutará con o sin él. Después de escribir una línea con sangría, el Editor
de Visual Basic asume que la siguiente línea tendrá una sangría similar. Para
desplazarse (es decir, a la izquierda) un carácter de pestaña, presione Mayús+Tab.
Ahora ya está listo para usar la nueva función DESCUENTO. Cierre el Visual Basic, seleccione la
celda G7 y escriba lo siguiente:
=DESCUENTO(D7;E7)
Excel calcula el descuento del 10 por ciento en 200 unidades a 47,50 $ por unidad y devuelve
950,00 $.
En la primera línea del código vba, Descuento de función(cantidad, precio), indicó que la
función DESCUENTO requiere dos argumentos, cantidad y precio. Al llamar a la función en una
celda de hoja de cálculo, debe incluir esos dos argumentos. En la fórmula
=DESCUENTO(D7,E7), D7 es el argumento cantidad y E7 es el argumento precio. Ahora puede
copiar la fórmula DESCUENTO en G8:G13 para obtener los resultados que se muestran a
continuación.
Veamos cómo Excel este procedimiento de función. Al presionar Entrar,Excel busca el nombre
DESCUENTO en el libro actual y se da cuenta de que es una función personalizada en un
módulo de VBA. Los nombres de argumento entre paréntesis, cantidad y precio
sonmarcadores de posición para los valores en los que se basa el cálculo del descuento.
Si el número de artículos vendidos es mayor o igual que 100, VBA ejecuta la siguiente
instrucción, que multiplica el valor de cantidad por el valor de precio y multiplica el resultado
por 0,1:
El resultado se almacena como la variable Descuento. Una instrucción VBA que almacena un
valor en una variable se denomina instrucción de asignación, ya que evalúa la expresión en el
lado derecho del signo igual y asigna el resultado al nombre de la variable de la izquierda.
Dado que la variable Descuento tiene el mismo nombre que el procedimiento de función, el
valor almacenado en la variable se devuelve a la fórmula de la hoja de cálculo denominada
función DESCUENTO.
Discount = 0
Por último, la siguiente instrucción redondea el valor asignado a la variable Descuento a dos
posiciones decimales:
Discount = Application.Round(Discount, 2)
VBA no tiene ninguna función REDONDEAR, pero Excel sí. Por lo tanto, para usar REDONDEAR
en esta instrucción, le pide a VBA que busque el método Round (función) en el objeto
Application (Excel). Para ello, agregue la palabra Aplicación antes de la palabra Redondear. Use
esta sintaxis siempre que necesite obtener acceso a una función Excel desde un módulo VBA.
Una función personalizada debe empezar con una instrucción Function y finalizar con una
instrucción Función final. Además del nombre de la función, la instrucción Function suele
especificar uno o varios argumentos. Sin embargo, puede crear una función sin argumentos.
Excel incluye varias funciones integradas(RAND y AHORA, por ejemplo) que no usan
argumentos.
El número de palabras clave de VBA que puede usar en funciones personalizadas es menor
que el número que puede usar en macros. Las funciones personalizadas no pueden hacer
nada que no sea devolver un valor a una fórmula de una hoja de cálculo o a una expresión
usada en otra macro o función de VBA. Por ejemplo, las funciones personalizadas no pueden
cambiar el tamaño de las ventanas, editar una fórmula en una celda o cambiar las opciones de
fuente, color o patrón para el texto de una celda. Si incluye código de "acción" de este tipo en
un procedimiento de función, la función devuelve el #VALUE! .
La única acción que puede realizar un procedimiento de función (aparte de realizar cálculos)
¿Le ha sido útil esta información?
×
es mostrar un cuadro de diálogo. Puede usar una instrucción InputBox en una función
personalizada como medio para obtener información del usuario que ejecuta la función.
Puede usar una instrucción MsgBox como medio para transmitir información al usuario.
También puede usar cuadros de diálogo personalizados o Formularios de usuario,pero ese
es un asunto que está más allá del ámbito de esta introducción.
Incluso las macros simples y las funciones personalizadas pueden ser difíciles de leer. Puede
hacerlos más fáciles de entender escribiendo texto explicativo en forma de comentarios.
Agregue comentarios antes del texto explicativo con un apóstrofo. Por ejemplo, en el ejemplo
siguiente se muestra la función DESCUENTO con comentarios. Agregar comentarios como
estos hace que sea más fácil para usted u otros usuarios mantener el código de VBA a medida
que pasa el tiempo. Si necesita realizar un cambio en el código en el futuro, le será más fácil
comprender lo que hizo originalmente.
Un apóstrofo indica a Excel que ignore todo a la derecha en la misma línea, para que pueda
crear comentarios en las líneas por sí mismos o en el lado derecho de las líneas que contienen
código VBA. Es posible que empiece un bloque de código relativamente largo con un
comentario que explique su propósito general y, a continuación, use comentarios en línea
para documentar instrucciones individuales.
Otra forma de documentar las macros y las funciones personalizadas es darles nombres
descriptivos. Por ejemplo, en lugar de nombrar una macro Etiquetas,podría nombrarla
MonthLabels para describir más específicamente el propósito que sirve la macro. Usar
nombres descriptivos para macros y funciones personalizadas es especialmente útil cuando ha
creado muchos procedimientos, especialmente si crea procedimientos con fines similares pero
no idénticos.
La forma en que documenta las macros y las funciones personalizadas es una cuestión de
preferencia personal. Lo importante es adoptar algún método de documentación y usarlo de
forma coherente.
Para usar una función personalizada, el libro que contiene el módulo en el que creó la función
debe estar abierto. Si ese libro no está abierto, obtiene una #NAME? al intentar usar la
función. Si hace referencia a la función de un libro diferente, debe preceder el nombre de la
función con el nombre del libro en el que reside la función. Por ejemplo, si crea una función
denominada DESCUENTO en un libro llamado Personal.xlsb y llama a esa función desde otro
libro, debe escribir =personal.xlsb!discount()y no simplemente =descuento().
Windows
1. Después de crear las funciones que necesita, haga clic en Archivo > Guardar como.
En Excel 2007, haga clic en el botón Microsoft Office yhaga clic en Guardar como
2. En el cuadro de diálogo Guardar como, abra la lista desplegable Guardar como tipo
y seleccione Excel complemento. Guarde el libro con un nombre reconocible, como
MyFunctions,en la carpeta AddIns. El cuadro de diálogo Guardar como propondrá
esa carpeta, por lo que todo lo que tiene que hacer es aceptar la ubicación
predeterminada.
En Excel 2007, haga clic en el botón Microsoft Office yhaga clic en Excel opciones.
Al hacer doble clic en ese módulo en el Explorador de Project, el editor de Visual Basic
muestra el código de función. Para agregar una nueva función, coloque el punto de inserción
después de la instrucción Función final que termina la última función en la ventana Código y
empiece a escribir. Puede crear tantas funciones como necesite de esta manera y siempre
estarán disponibles en la categoría Definido por el usuario en el cuadro de diálogo Insertar
función.
Explore las ventajas de las suscripciones, examine los cursos de aprendizaje, aprenda a
proteger su dispositivo y mucho más.
Azure para
estudiantes