
Contenido
La función `FormatCurrency` en VBA (Visual Basic for Applications) se utiliza para convertir un número a una cadena de texto formateada como un valor de moneda usando la configuración regional del sistema o especificaciones proporcionadas por el usuario. La función permite personalizar el número de decimales, el uso de separador de mil y de decimales, y si mostrar o no los símbolos de moneda negativos.
Para utilizar `FormatCurrency` en VBA, puedes seguir estos pasos:
- Abre el editor de VBA presionando `ALT` + `F11` en Excel.
- Inserta un nuevo módulo o utiliza uno existente en el proyecto.
- Ingresa una subrutina o función para usar `FormatCurrency`.
Aquí hay un ejemplo simple de cómo usar la función `FormatCurrency`:
Sub DemoFormatCurrency()
Dim numero As Double
numero = 1234.567
' Formatea el número como moneda con 2 decimales (por defecto)
Dim valorComoMoneda As String
valorComoMoneda = FormatCurrency(numero)
' Muestra el valor formateado en un cuadro de mensaje
MsgBox valorComoMoneda
End Sub
El ejemplo anterior convertirá el número `1234.567` en una cadena con formato de moneda, usando la configuración regional del sistema para determinar el símbolo de la moneda y el formato.
La sintaxis completa de la función es:
FormatCurrency(Expression[, NumDigitsAfterDecimal As Integer = -1[, IncludeLeadingDigit As TriState = TriState.True[, UseParensForNegativeNumbers As TriState = TriState.True[, GroupDigits As TriState = TriState.True]]]])
Donde:
- `Expression`: es el valor numérico que deseas formatear.
- `NumDigitsAfterDecimal`: (opcional) es el número de dígitos que deseas mostrar después del separador decimal. Si se omite o se usa -1, usa el valor predeterminado de la configuración regional del sistema.
- `IncludeLeadingDigit`: (opcional) especifica si se debe incluir o no un cero para los valores fraccionarios. Puede ser `vbTrue`, `vbFalse` o `vbUseDefault`.
- `UseParensForNegativeNumbers`: (opcional) indica si se deben utilizar paréntesis para números negativos. Puede ser `vbTrue`, `vbFalse` o `vbUseDefault`.
- `GroupDigits`: (opcional) especifica si se deben agrupar los dígitos con separadores de miles. Puede ser `vbTrue`, `vbFalse` o `vbUseDefault`.
Por ejemplo, si deseas formatear un número con 4 decimales y sin separadores de mil, podrías hacer algo así:
Sub DemoFormatCurrencyAdvanced()
Dim numero As Double
numero = 1234.5678
' Formatea el número como moneda con 4 decimales y sin separador de miles
Dim valorComoMoneda As String
valorComoMoneda = FormatCurrency(numero, 4, vbTrue, vbTrue, vbFalse)
' Muestra el valor formateado en un cuadro de mensaje
MsgBox valorComoMoneda
End Sub
El resultado mostrará el número 1234.5678 formateado como valor de moneda con 4 decimales y sin utilizar separador de mil.