No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Crear una función

8/17
Recursos

Aprender a crear funciones en Visual Basic te dará autonomía y eficiencia en tus proyectos, permitiéndote resolver problemas específicos mediante la personalización del entorno. Las funciones te pueden ahorrar tiempo y esfuerzo, facilitando tu trabajo con tareas repetitivas o cálculos complejos. En este artículo, descubrirás cómo crear una función en Visual Basic y cómo implementarla en Excel para maximizar tus resultados.

¿Cómo crear una función en Visual Basic?

Crear una función en Visual Basic es un proceso metódico que empieza por la definición de un problema que necesitas resolver. Por ejemplo, calcular un año después de agregar un número fijo al año actual.

¿Cuáles son los pasos para definir una función básica?

  1. Definir la función y sus parámetros: Declara una función pública en tu módulo que contemple un número entero como atributo de entrada y que devuelva un número entero.
  2. Definir la operación: Realiza la operación deseada, como sumar un valor fijo al atributo de entrada.
  3. Asegurar la corrección técnica: Comprueba que la función está correctamente configurada. Visual Basic proporciona señales visuales para posibles errores, como el subrayado en rojo.
  4. Guardar el resultado: El resultado de la operación debe ser asignado al nombre de la función para retornar el valor esperado.

¿Cómo se puede probar la función?

Para verificar la funcionalidad correcta de tu función dentro de Visual Basic, usa la ventana "Inmediato" (disponible en el menú "Ver"). Allí:

  • Utiliza un signo de interrogación seguido del nombre de tu función.
  • Introduce un valor numérico que se ajusta al tipo de dato esperado.
  • Presiona Enter para ver el resultado calculado.

Este método es inmediato para verificar la función con diferentes parámetros, asegurando su correcto funcionamiento.

¿Cómo usar la función en Excel?

Una vez definida en Visual Basic, la función personalizada puede ser integrada en Excel. Esto te permite ampliar el potencial de tus hojas de cálculo al utilizar operaciones específicas no disponibles en las funciones estándar de Excel.

  • Implementar la función: Escribe igual ( = ) y el nombre de tu función en una celda de Excel, selecciona o ingresa el parámetro adecuado.
  • Verificación del resultado: Excel devolverá el cálculo basado en la lógica definida en Visual Basic, tal como lo verías en el entorno de desarrollo.

¿Qué hacer en caso de ingresar datos incorrectos?

Visual Basic maneja los errores redondeando valores erróneos al tipo esperado. Por ejemplo, si ingresas un decimal cuando se espera un entero, este se redondeará automáticamente. Esto garantiza que las funciones permanezcan robustas ante entradas inesperadas.

¿Cuál es el siguiente paso en el aprendizaje de Visual Basic?

Te animamos a aplicar lo aprendido creando una función propia, como calcular el cuadrado de un número. Este ejercicio te ayudará a familiarizarte más con la sintaxis y lógica del lenguaje. ¡Comparte tus resultados para seguir mejorando y compartir tus avances! Con práctica continua, te volverás cada vez más competente y eficiente en el uso de Visual Basic.

Aportes 309

Preguntas 24

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Ahora podrá crear mis propias formulas Se emociona

Es increíble no sabia que se podía hacer esto, ahora puedo hacer una función que se llame " el loco Hugo" y que haga algo útil.
Jajajaja.

Decidí crear una función para edad.

Mi primera prueba de Función con VBA

Public Function prueba(X As Integer) As Integer
    
    prueba = X * 38

End Function

Aquí mi solución, yo más o menos se programar, pero el crear un script tan sencillo con un lenguaje que no conozco me emociono.

Wow profe Ana, cuando le dio “=” en excel y le salió la función prueba cambió mi vida. Puedo hacer mis propias funciones!!!

Hecho!
.

Si queremos crear una formula que contenga mas de un parámetro, el separador que se debe usar es coma (,) o punto y coma (😉 según el idioma que uses, y recuerda que dentro del libro de excel los parámetros se pudieran tan cual fueron crearon en la función, y esta función ejecutara con estos parámetros las indicaciones dadas. Importante, integer lo podemos usar para números máximos de 3 caracteres, mayores de ahí recomendable usar long

En el momento en que la profe Ana ingresa 1.5 VBA ejecuta redondeo puesto que no reconoce el número como decimal. Para que se reconozca como decimal se debe ingresar con coma (,) y no con punto(.). De esa manera si se ingresa el decimal con el signo coma (,) automáticamente arroja un error puesto que no lo reconoce como entero (Integer).

Function DIAS_HABilES(D_HABILES As Long, FECHA As Date, Rango_Festivo As Range)
Dim Fhabil As Date
Dim dia
Dim n_vuelta
Dim FESTIVo

Fhabil = FECHA
n_vuelta = 1
Dfes = 0

'‘MsgBox Rango_Festivo.Address
’'Hoja2.Range(“A:A”).NumberFormat = “General”

Do Until dia >= D_HABILES

Set CELDA = Rango_Festivo.Find(What:=Fhabil * 1, LookIn:=xlValues, LookAt:=xlPart)
If CELDA Is Nothing Then FESTIVo = 0 Else FESTIVo = 1

''MsgBox n_vuelta

'Valido si el dia es habil
If Weekday(Fhabil, vbSaturday) = 1 Or Weekday(Fhabil, vbSunday) = 1 Or FESTIVo = 1 Then

  If dia = D_HABILES Then dia = dia - 1
  Fhabil = FECHA + n_vuelta

Else

 ' MsgBox "dia " & dia
 ' MsgBox Format(fhabil, "dd-mm-yyyy") & "-" & Format(fhabil, "dddd")
  
If dia <> D_HABILES Then dia = dia + 1
If dia <> D_HABILES Then Fhabil = FECHA + n_vuelta

End If

n_vuelta = n_vuelta + 1

Loop

DIAS_HABilES = Fhabil
End Function

Funcion avanzar desde una fecha n cantidad de dias Habiles

![](https://static.platzi.com/media/user_upload/image-8a376447-2ad8-4480-9ebb-0946f8e8be26.jpg)
mis aportes ![](https://static.platzi.com/media/user_upload/image-da5e7b53-b4b0-4fa5-94ba-e84e5216c000.jpg)
¡Lo logré! ![](https://static.platzi.com/media/user_upload/image-7640bfa6-042e-425b-ae19-e0e4013be602.jpg)![](https://static.platzi.com/media/user_upload/image-82663d59-81f7-4545-a25c-e01b9771a0e6.jpg)

Sabía que existía visual basic pero ni idea que servía para crear funciones.

Está hecho 👇

Al momento de probar la formula que creé me lanzó un error, sobre que no estaban habilitadas ciertas funciones. No estoy segura si es la forma correcta pero modifique la ventana de Centro de confianza como se ve en la imagen y ya empezo a funcionar. ![](https://static.platzi.com/media/user_upload/image-ea1836fa-7fba-44a1-9ad0-2f810c3b893f.jpg) Si alguien tiene el mismo problema espero que les sirva.
Buen día: Envió mi primera función: ![](https://static.platzi.com/media/user_upload/image-3993928d-fc30-45d1-bf2f-57e7c7bb7c98.jpg) Feliz día.
Aplique una condicional para devolver un booleano ![](https://static.platzi.com/media/user_upload/image-ecb1891a-7dd7-404c-9e28-d340c94e67f5.jpg)
Hola, me sale error ' Se ha producido el error '13' en tiempo de ejecución : no coinciden los tipos , agradezco su ayuda
![](https://static.platzi.com/media/user_upload/image-831c9255-55b6-4881-b5bf-84ac4243c70d.jpg)
![](https://static.platzi.com/media/user_upload/image-23184711-ab09-4f85-9fcc-80161861a236.jpg)![](https://static.platzi.com/media/user_upload/image-27140374-3973-4f51-bfc2-5c648ae1603c.jpg)me sale error alguien me podria ayudar
![](https://static.platzi.com/media/user_upload/image-9a1bc1cd-447f-4f85-9656-aa5e4f19186e.jpg)
![](https://static.platzi.com/media/user_upload/FUNCTION%20PRUEBA-c4d11f4f-ae66-43f0-abb9-9fc586dc72f3.jpg) Ya empezamos
Primera funcion en VBA ![](https://static.platzi.com/media/user_upload/image-acafa111-791b-49dd-ba26-921fddb355f3.jpg)![](https://static.platzi.com/media/user_upload/image-5f741e34-bdb6-41a2-bb43-f7100fb8bcc1.jpg)

=D

Public Function porsimismo(X As Integer) As Integer
    
    porsimismo = X * X        

End Function

Public Function AL_CUADRADO(X As Integer) As Integer

    AL_CUADRADO = X * X

End Function

Así me quedo
Public Function multiplica(X As Integer) As Integer

multiplica = X * X

End Function

Buenas tardes profesora me arrojó bien el resultado

  • Done 👍
Ejercicio de la clase ![](https://static.platzi.com/media/user_upload/upload-d556f26d-fd8f-4795-b21f-014b7df9ff44.png)
Es la primera vez que utilizo esto y de verdad no tenía idea de para que servía, ahora que lo he visto le veo el gran potencial que tiene y cuantos dolores de cabeza me hubiera ahorrado en el pasado, con el tiempo desarrollé un método propio para ejecutar funciones en las celdas de Excel que llevan una cantidad de parámetros impresionantes que ahora seguro se ejecutaran de manera mas eficiente. ![](https://static.platzi.com/media/user_upload/upload-2fa80b38-4019-4317-99a5-e96db6738473.png)
![](https://static.platzi.com/media/user_upload/upload-fb1647d3-0305-4ca1-825d-a7a340e849c7.png)![]()
![](https://static.platzi.com/media/user_upload/image-7531f786-b4b0-4c97-964c-8f3f630674f9.jpg)
¿Qué es? **Programar con Visual Basic for Applications (VBA)** implica escribir código para automatizar tareas en aplicaciones de Microsoft, como Excel. Se utiliza para crear macros, funciones y subrutinas que optimizan flujos de trabajo y mejoran la eficiencia. Para empezar, instala Excel y accede al editor de VBA desde la pestaña "Desarrollador". Luego, puedes seguir estos pasos: 1. Define el problema que deseas resolver. 2. Escribe tu código en el editor de VBA. 3. Prueba tu función en el entorno de inmediato para verificar resultados. ## **¿Una función en Visual Basic es parte de su programación?** Sí, hacer una función es parte de programar con Visual Basic. Al crear funciones, defines un conjunto de instrucciones que realizan una tarea específica, lo que permite reutilizar código y simplificar procesos en tus macros de Excel. En el contexto de Visual Basic, las funciones se utilizan para ejecutarse de manera eficiente y resolver problemas específicos, como se explicó en la clase sobre cómo crear funciones. Esto es fundamental para desarrollar habilidades en programación y automatizar tareas. Saludos, Maria CRM
![](https://static.platzi.com/media/user_upload/image-4480e554-4ebb-40a0-9c71-48048fba05aa.jpg)
![](https://static.platzi.com/media/user_upload/image-3babd11b-3e93-4ca0-b459-0d95fd217e8d.jpg)
```txt ``` ![](https://static.platzi.com/media/user_upload/Captura%20de%20pantalla%202025-03-17%20175247-dc42e845-1105-47cb-9d3b-8c9162a4e64e.jpg)
![](https://static.platzi.com/media/user_upload/image-f340d620-55b0-4874-aa8d-b88da1dc9d8f.jpg)
![](https://static.platzi.com/media/user_upload/image-e5ac1d70-9559-4440-9970-15c5a5a562c9.jpg)
```js Public Function prueba(x As Integer) As Integer prueba = x * x End Function ````Public Function prueba(x As Integer) As Integer` ` prueba = x * x` ` ` `End Function`
Asignación de la profesora: ![](https://static.platzi.com/media/user_upload/image-a37dfcc7-70d1-4905-96af-1281646766dd.jpg)
![](https://static.platzi.com/media/user_upload/image-7e59361b-efe2-4f52-bf11-d08f7f2aeab4.jpg)
![](https://static.platzi.com/media/user_upload/image-5041a878-b82b-4d55-bf4b-2623e24ae686.jpg)Intenté hacer dos funcione, me salieron bien. gran curso.
Esta son las funciones que escribí en clase: ![](https://static.platzi.com/media/user_upload/image-75c25a57-e53b-421c-8428-627624821d6c.jpg) y las pruebas: ![](https://static.platzi.com/media/user_upload/image-a47ed39c-56dc-4759-ae97-caf03a2abaa8.jpg)
Buen día: Comparto resultado de mi primera función ![](https://static.platzi.com/media/user_upload/image-50485026-9ff1-40a2-9e56-415ec3ef0b26.jpg) Feliz día.
![](https://static.platzi.com/media/user_upload/image-450d44c5-0f5f-450a-8444-380c70d2f0a6.jpg)
![](https://static.platzi.com/media/user_upload/image-cf0ccff6-bf6a-46ae-8806-59f2d234b626.jpg)
![](https://static.platzi.com/media/user_upload/image-b54e4a84-1759-4c1b-9bfc-4d6e823dfdae.jpg)
Ejercicio ![](https://static.platzi.com/media/user_upload/image-9490199d-37bc-4c2f-888b-07df94ca6312.jpg)
![](https://static.platzi.com/media/user_upload/image-f984bef0-3248-4bde-a041-5542c0078c7d.jpg) ![](https://static.platzi.com/media/user_upload/image-9b5c2bbf-f9ac-40ed-abc1-f160b9adbb47.jpg)
![](https://static.platzi.com/media/user_upload/image-a8d7e36d-b9f8-4331-841d-0801a4d7bf04.jpg)
![](https://static.platzi.com/media/user_upload/image-1cd853dd-7339-496c-b10f-5f5eefd3b7b4.jpg)
Ame esta clase
![](https://static.platzi.com/media/user_upload/image-47ca18cc-d16b-4e68-a592-fde0ebe9d9ad.jpg)
![](https://static.platzi.com/media/user_upload/image-611ad0eb-aead-4ecf-b16b-f17c4fa2fd85.jpg)la suma m la hace cuando pongo el código en inmediato, pero me sale este aviso siempre, que hago? por favor ayuda
Aqui tengo el ejercicio hecho. ![](https://static.platzi.com/media/user_upload/RETO%20PROFE-9762b422-699a-4b22-a305-68462a04e34d.jpg)
![](https://static.platzi.com/media/user_upload/image-ce857645-a63e-4038-aee7-51cd201aeb6e.jpg)Ahi va el codigo para multiplicar la variable por si misma
Función para calcular el índice de masa corporal. ![](https://static.platzi.com/media/user_upload/image-03d0bbdb-0d8b-4f60-a43a-7a5b2dc003f3.jpg)
![](https://static.platzi.com/media/user_upload/image-aa227114-e8d3-4df1-ac31-334aeb3d3d4b.jpg)
*aquí realicé el ejercicio aplicando el valor del IVA en Chile con el ejercicio de multiplicación* ![](https://static.platzi.com/media/user_upload/image-00031233-b3a5-4d68-8e9c-54ed5291a5dd.jpg)
![](https://static.platzi.com/media/user_upload/image-fad32549-4117-4924-bc67-231909e8d222.jpg)
Nombrada en Honor a Cosmo : ![](https://static.platzi.com/media/user_upload/image-450e2a06-16b2-4894-9760-57d02730169b.jpg)
![](https://static.platzi.com/media/user_upload/image-c579d464-4fc1-424f-811a-e3e38e894308.jpg)
![](https://static.platzi.com/media/user_upload/imagen-e2e26388-0c3a-4047-9458-314128a2762e.jpg)Muy contenta con este aprendizaje..
Que genial ..!! ![](https://static.platzi.com/media/user_upload/imagen-3456bc19-41d6-480e-b3b9-969d5bd1c355.jpg)
![](https://static.platzi.com/media/user_upload/image-6b1aef10-ac5a-4abf-b73f-7358222630e2.jpg) Función multiplicar un número por si mismo
wow, ser capaz de crear tus propias funciones, eso si esta loquisimo
Por lo que puedo observar, hay muchas formas de llegar al resultado, ya sea x\*x o x^2, lo importante es llegar a la solución. ![](https://static.platzi.com/media/user_upload/image-7bad99c1-2388-4e76-93a6-b18d30f53f4a.jpg)
Realizada, ahora a crear mis propias formulas. :) ![](https://static.platzi.com/media/user_upload/image-95b90d64-da55-4626-9b47-d604ff8fc86b.jpg)
![](https://static.platzi.com/media/user_upload/image-e87fac79-981f-4bce-819d-e42a15fe41fd.jpg)
Este es el código ![](https://static.platzi.com/media/user_upload/imagen-0f2917a8-9123-4022-8eff-2a1e23427af0.jpg) y este es el resultado ![](https://static.platzi.com/media/user_upload/imagen-a4269a8b-bdd4-49ca-824e-e185f5a2d6f5.jpg)
lo hice asi suponiendo que es la funcion de area de un circulo, si alguien sabe una forma directa de poner exponente, agradezco. ![](https://static.platzi.com/media/user_upload/image-996e5571-4cdd-45fb-88ad-93b7234f8702.jpg)
![](https://static.platzi.com/media/user_upload/image-3419c349-7643-46c2-9aac-1b67d8eba1ea.jpg)![](https://static.platzi.com/media/user_upload/image-cbebf858-91b7-453c-af3d-83b509595eca.jpg)gracias por tanto Platzi :D
![](https://static.platzi.com/media/user_upload/image-828e0d4c-fffd-434e-83de-1ef140dfc689.jpg)![]()
![](https://static.platzi.com/media/user_upload/image-bce6c4ef-b65c-41ef-9cb1-f59121570c4e.jpg)![](https://static.platzi.com/media/user_upload/image-4488c5b0-cefa-4c60-92e3-2ed6b3a83c02.jpg)
mi parte: ![](https://static.platzi.com/media/user_upload/image-414e5425-21a8-46c1-a52e-1d72f2e9f508.jpg)
¿Por qué en la ventana de Inmediato, se coloca '?"? ¿Es solo para llamar a la función o tiene alguna otra función? y qué más puede hacer?
Function de multiplicar un numero por sí mismo ![](https://static.platzi.com/media/user_upload/image-66eccc2a-e919-4364-9b3d-d454c59eff71.jpg)
![](https://static.platzi.com/media/user_upload/Funcion%20con%20Macros-0f6c3382-2f99-40e9-a632-104a246f90e4.jpg)
realice el ejercicio y se puso en amarillo, porque? ![](https://static.platzi.com/media/user_upload/image-739b65a4-6274-42a6-96b4-0065ecef96d0.jpg)
![](https://static.platzi.com/media/user_upload/Ejercicio2_PruebaFunction1-e2674d2b-76a7-44b3-a5ce-7ec01a8cc167.jpg) ![](https://static.platzi.com/media/user_upload/Ejercicio2_PruebaFunction2-5ad58318-3ccc-4ecc-9458-bd18d758e96f.jpg)
![](https://static.platzi.com/media/user_upload/image-fae53700-5cd7-44cb-b52f-d01ab38e7b06.jpg)
![](https://static.platzi.com/media/user_upload/image-b06f233b-8a6f-403c-be98-92240d037729.jpg)Done
EJEMPLO MULTIPLICAR UN NUMERO ENTERO POR SÍ MISMO : EN VBA Public Function Multiplicar(x As Integer) As Integer Multiplicar = x \* x End Function
Logrado!![](https://static.platzi.com/media/user_upload/image-4ea8160f-cf7a-4407-b6bc-5640d9b2e847.jpg)
![](https://static.platzi.com/media/user_upload/image-fa96f241-6694-45c7-8c89-4079bd3d0a99.jpg)
![](https://static.platzi.com/media/user_upload/image-3e00ff0d-8a43-4297-9a1b-7abf3b3d84f2.jpg)
![](https://static.platzi.com/media/user_upload/image-2ab8e7b9-8e40-450d-8de2-abc1ca7ddca5.jpg) Genial, mi primera funcion con VBA
Here my homework ![](https://static.platzi.com/media/user_upload/Captura%20de%20pantalla%202024-05-16%20182257-e6f9da4b-1d12-4f73-9f6b-cd113dc6f0d1.jpg)
Public Function MultiplicarPorSiMismo(x As Integer) As Integer MultiplicarPorSiMismo = x \* x End Function
Public Function loc(M As Integer) As Integer loc = M \* 5 End Function ?loc(5) 25
Public Function cuadrado(X As Double) As Double cuadrado = X \* X End Function
Entorno VBA función que multiplica X\*X ![](https://static.platzi.com/media/user_upload/funcion_producto-a0cfd334-a9cd-490e-a5da-054c911415eb.jpg)
Este es el código: `Public Function EsSiMismo(X As Integer) As Integer` ` EsSiMismo = X * X` `End Function`