Contenido
En VBA, las funciones de conversión se utilizan para convertir un tipo de dato a otro. Estas son útiles, por ejemplo, cuando tienes un valor como texto (cadena de caracteres) y necesitas tratarlo como un número para realizar operaciones matemáticas, o cuando tienes un número que deseas presentar en formato de texto.
Aquí tienes algunos ejemplos de funciones de conversión en VBA:
- CInt() Convierte una expresión a tipo Integer (entero).
- CLng() Convierte una expresión a tipo Long (entero largo).
- CSng() Convierte una expresión a tipo Single (número de punto flotante de precisión simple).
- CDbl() Convierte una expresión a tipo Double (número de punto flotante de precisión doble).
- CStr() Convierte una expresión a tipo String (cadena de caracteres).
- CDate() Convierte una expresión a tipo Date (fecha).
- CBool() Convierte una expresión a tipo Boolean (verdadero o falso).
- CByte() Convierte una expresión a tipo Byte (un entero de 0 a 255).
- CCur() Convierte una expresión a tipo Currency (moneda con precisión fija y cuatro decimales para evitar errores en cálculos financieros).
- CVar() Convierte una expresión a tipo Variant (puede contener cualquier tipo de dato).
Ejemplo
Sub ConversionExample()
Dim myValue As Variant
Dim myString As String
Dim myNumber As Double
' Convertir cadena a número
myString = "123.45"
myNumber = CDbl(myString)
' Convertir número a cadena
myValue = 987.65
myString = CStr(myValue)
' Convertir cadena a fecha
myString = "January 1, 2023"
Dim myDate As Date
myDate = CDate(myString)
' Convertir número a entero (redondea al entero más cercano)
myNumber = 123.67
Dim myInteger As Integer
myInteger = CInt(myNumber)
' Ejemplo usando la conversión Boolean
Dim myBoolean As Boolean
myBoolean = CBool(myValue)
' Mostrar los resultados
MsgBox "Double: " & myNumber & vbCrLf & _
"String: " & myString & vbCrLf & _
"Date: " & myDate & vbCrLf & _
"Integer: " & myInteger & vbCrLf & _
"Boolean: " & myBoolean
End Sub
Debes tener en cuenta que si la conversión no es posible, como intentar convertir una cadena de texto que no representa un número en un tipo numérico, VBA arrojará un error en tiempo de ejecución. También es importante asegurarse de que las conversiones estén dentro del rango permitido para el tipo de dato de destino, de lo contrario, se producirá un error de desbordamiento.
Recuerda que estas funciones de conversión son específicas de VBA y no están disponibles en todos los lenguajes de programación, aunque conceptos similares se encuentran en muchos otros lenguajes.