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.
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.
Sintaxis completa
FormatCurrency(Expression, [NumDigitsAfterDecimal], [IncludeLeadingDigit], [UseParensForNegativeNumbers], [GroupDigits])
- 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.