Curso Excel VBA y Macros – Cap. 32 – Funciones sin argumentos, con uno o dos

<<CURSO COMPLETO EN YOUTUBE>>

En este tutorial daremos continuidad al tema de Funciones VBA y Funciones personalizadas UDF o User-defined Functions, por sus siglas en inglés.

Veremos algunos ejemplos de funciones sin argumentos, con uno o dos. El ejemplo que contiene dos argumentos, uno de ellos será opcional. En caso de los argumentos opcionales, te mostraré cómo evaluar si el argumento se ingresa o no, usando la función VBA.IsMissing.

Ver video Capítulo 32 Excel VBA & Macros

Suscríbete al canal de EXCELeINFO en YouTube para aprender más de Excel y macros.

Funciones VBA

Repasemos algunos temas con respecto a las funciones.

  • Una función es un procedimiento que captará argumentos y devolverá un valor o una matriz de valores.
  • Las funciones pueden llamarse desde procedimientos o desde celdas.
  • Existen funciones sin argumentos como HOY o AHORA.
  • Las funciones públicas son disponibles para todos los procedimientos del archivo y para usarse en celdas.
  • Las funciones privadas solo están disponibles en los procedimientos del mismo módulo.

Funciones personalizadas UDF (User Defined Function)

Una función personalizada, puede ser pública o privada. Si es pública la podemos invocar desde una celda en Excel, pero si es privada, solo podrá ser llamada desde procedimientos.

Estas funciones las podremos encontrar en el cuadro de diálogo Insertar función, en la categoría Definidas por el usuario y podremos tener una interfaz gráfica para insertar los argumentos.

Cuando ingresamos el sigo de igual “=” en una celda, vamos a poder visualizar las UDF, siempre y cuando el archivo o add-in que las contenga esté abierto. Excel tiene más de 450 funciones, más las que desarrolles.

Función sin argumentos

Te comparto 3 ejemplos de funciones UDF donde no requerimos argumentos para devolver un resultado. En la primera devolvemos el nombre de la hoja activa, en la siguiente la versión de Excel y en la última mostramos el usuario de Excel, el cual puedes encontrar en las Opciones de Excel.

Option Explicit

Function NombreHoja()
Application.Volatile

NombreHoja = ActiveSheet.Name

End Function

Function Version()
Application.Volatile

Version = Application.Version

End Function

Function Usuario()
Application.Volatile

Usuario = Application.UserName

End Function

Función con un argumentos

En esta función valor a tener como argumento el valor de Ventas y dependiendo la cantidad, vamos a devolver un descuento. Usaremos la sentencia If-Then-Else para evaluar las cantidades y MsgBox para mostrar un mensaje bien elaborado.

Option Explicit

Function Descuento(Ventas)
Application.Volatile

If Ventas < 10 Then
    Descuento = 0
ElseIf Ventas < 20 Then
    Descuento = 0.1
Else
    Descuento = 0.2
End If

End Function

Sub CalcularDescuento()
Dim ValorVentas As Integer
Dim Mensaje As String

ValorVentas = InputBox("Ingrese las ventas", "Ventas")

If ValorVentas = 0 Then Exit Sub

Mensaje = "Las ventas son: " & vbTab & ValorVentas
Mensaje = Mensaje & vbNewLine & "El descuento es: "
Mensaje = Mensaje & vbTab & VBA.Format(Descuento(ValorVentas), "0%")

MsgBox Mensaje, vbInformation, "EXCELeINFO"

End Sub

Función con dos argumentos. Uno opcional

La siguiente función será válida solo para usarse en una celda de Excel. Lograremos que si el usuario ingresa el valor 1, el texto ingresado se convertirá a MAYÚSCULAS, si ingresamos el 2, a minúsculas, y si no se ingresa el parámetro Tipo, se devolverá el texto tal cual. El parámetro Tipo es opcional, por lo que evaluaremos con VBA.IsMissing si el parámetro se ingresa o no.

Option Explicit

Function CTexto(Texto As String, Optional Tipo As Variant)

If VBA.IsMissing(Tipo) Then
    Tipo = 0
    CTexto = Texto
Else
    Select Case Tipo
        Case 1
            CTexto = VBA.UCase(Texto)
        Case 2
            CTexto = VBA.LCase(Texto)
        Case Else
            CTexto = VBA.CVErr(xlErrValue)
    End Select
End If

End Function

Descarga el archivo de ejemplo

032 – Funciones sin argumentos, con uno o dos. Opcionales.zip

<<CURSO COMPLETO EN YOUTUBE>>

Si te gustó este tutorial por favor regístrate en nuestra Lista de correo y Suscríbete a nuestro canal de YouTube para que estés siempre enterado de lo nuevo que publicamos.

You may also like...

Leave a Reply

Your email address will not be published. Required fields are marked *