Resumen de tipo de datosData type summary

Un tipo de datos es la característica de una variable que determina qué tipo de datos puede contener.A data type is the characteristic of a variable that determines what kind of data it can hold. Los tipos de datos incluyen los que aparecen en la tabla siguiente, así como los tipos definidos por el usuario y determinados tipos de objetos.Data types include those in the following table as well as user-defined types and specific types of objects.

Establezca tipos de datos intrínsecos.Set intrinsic data types

La siguiente tabla muestra los tipos de datos compatibles, incluidos los tamaños de almacenamiento e intervalos.The following table shows the supported data types, including storage sizes and ranges.

Tipo de datosData type Tamaño de almacenamientoStorage size RangoRange
BooleanoBoolean 2 bytes2 bytes True o FalseTrue or False
ByteByte 1 byte1 byte De 0 a 255.0 to 255
ColecciónCollection DesconocidoUnknown DesconocidoUnknown
Moneda (entero con escala)Currency (scaled integer) 8 bytes8 bytes De -922.337.203.685.477.5808 a 922.337.203.685.477,5807-922,337,203,685,477.5808 to 922,337,203,685,477.5807
FechaDate 8 bytes8 bytes 1 de enero de 100 a 31 de diciembre de 9999January 1, 100, to December 31, 9999
DecimalDecimal 14 bytes14 bytes +/- 79 228 162 514 264 337 593 543 950 335 sin decimales+/-79,228,162,514,264,337,593,543,950,335 with no decimal point

+/-7,9228162514264337593543950335 con 28 decimales a la derecha de la coma decimal+/-7.9228162514264337593543950335 with 28 places to the right of the decimal

El número más pequeño distinto de cero es +/- 0,0000000000000000000000000001Smallest non-zero number is+/-0.0000000000000000000000000001
DiccionarioDictionary DesconocidoUnknown DesconocidoUnknown
**Double ** (punto flotante de precisión doble)Double (double-precision floating-point) 8 bytes8 bytes -1,79769313486231E308 a - 4,94065645841247E-324 para valores negativos-1.79769313486231E308 to -4.94065645841247E-324 for negative values

4,94065645841247E-324 a 1,79769313486232E308 para valores positivos4.94065645841247E-324 to 1.79769313486232E308 for positive values
IntegerInteger 2 bytes2 bytes A:-32,768 to 32,767
**Long ** (entero largo)Long (Long integer) 4 bytes4 bytes A:-2,147,483,648 to 2,147,483,647
**LongLong ** (entero LongLong)LongLong (LongLong integer) 8 bytes8 bytes -9 223 372 036 854 775 808 to 9 223 372 036 854 775 807-9,223,372,036,854,775,808 to 9,223,372,036,854,775,807

Válido solo en plataformas de 64 bits.Valid on 64-bit platforms only.
LongPtr (entero largo en sistemas de 32 bits, entero LongLong en sistemas de 64 bits)LongPtr (Long integer on 32-bit systems, LongLong integer on 64-bit systems) 4 bytes en sistemas de 32 bits4 bytes on 32-bit systems

8 bytes en sistemas de 64 bits8 bytes on 64-bit systems
-2 147 483 648 a 2 147 483 647 en sistemas de 32 bits-2,147,483,648 to 2,147,483,647 on 32-bit systems

-9 223 372 036 854 775 808 a 9 223 372 036 854 775 807 en sistemas de 64 bits-9,223,372,036,854,775,808 to 9,223,372,036,854,775,807 on 64-bit systems
ObjectObject 4 bytes4 bytes Cualquier referencia de objetoAny Object reference
Single (punto flotante de precisión sencilla)Single (single-precision floating-point) 4 bytes4 bytes -3,402823E38 a -1,401298E-45 para valores negativos-3.402823E38 to -1.401298E-45 for negative values

1,401298E-45 a 3,402823E38 para valores positivos1.401298E-45 to 3.402823E38 for positive values
String (longitud variable)String (variable-length) 10 bytes + longitud de cadena10 bytes + string length De 0 a aproximadamente 2 mil millones0 to approximately 2 billion
String (longitud fija)String (fixed-length) Longitud de la cadenaLength of string De 1 a aproximadamente 65.4001 to approximately 65,400
Variant (con números)Variant (with numbers) 16 bytes16 bytes Cualquier valor numérico hasta el intervalo de DoubleAny numeric value up to the range of a Double
Variant (con caracteres)Variant (with characters) 22 bytes + longitud de cadena (24 bytes en sistemas de 64 bits)22 bytes + string length (24 bytes on 64-bit systems) Mismo intervalo que para el valor de String de longitud variableSame range as for variable-length String
Definido por el usuario (mediante Type)User-defined (using Type) Número requerido por los elementosNumber required by elements El intervalo de cada elemento es el mismo que el intervalo de su tipo de datos.The range of each element is the same as the range of its data type.

Un Variant que contiene una matriz requiere 12 bytes más que la matriz independiente.A Variant containing an array requires 12 bytes more than the array alone.

Nota

Las matrices de cualquier tipo de datos requieren 20 bytes de memoria más 4 bytes para cada dimensión de matriz más el número de bytes que ocupan los propios datos.Arrays of any data type require 20 bytes of memory plus 4 bytes for each array dimension plus the number of bytes occupied by the data itself. La memoria que ocupan los datos se puede calcular multiplicando el número de elementos de datos por el tamaño de cada elemento.The memory occupied by the data can be calculated by multiplying the number of data elements by the size of each element.

Por ejemplo, los datos de una matriz de dimensión sencilla que se compone de 4 elementos de datos Integer de 2 bytes cada uno ocupa 8 bytes.For example, the data in a single-dimension array consisting of 4 Integer data elements of 2 bytes each occupies 8 bytes. Los 8 bytes requeridos para los datos más los 24 bytes de sobrecarga ascienden el requisito de memoria total para la matriz a 32 bytes.The 8 bytes required for the data plus the 24 bytes of overhead brings the total memory requirement for the array to 32 bytes. En plataformas de 64 bits, las SAFEARRAY ocupan hasta 24 bits (más 4 bytes por instrucción Dim).On 64-bit platforms, SAFEARRAY's take up 24-bits (plus 4 bytes per Dim statement). El miembro pvData es un puntero de 8 bytes y debe estar alineado en límites de 8 bytes.The pvData member is an 8-byte pointer and it must be aligned on 8 byte boundaries.

Nota

LongPtr no es un tipo de datos real porque se transforma en un valor de Long en entornos de 32 bits o en LongLong en entornos de 64 bits.LongPtr is not a true data type because it transforms to a Long in 32-bit environments, or a LongLong in 64-bit environments. LongPtr debería usarse para representar valores de puntero y controlador en instrucciones Declare y habilita el código portátil de escritura que puede ejecutarse en entornos de 32 y de 64 bits.LongPtr should be used to represent pointer and handle values in Declare statements and enables writing portable code that can run in both 32-bit and 64-bit environments.

Nota

Use la función StrConv para convertir un tipo de datos de cadena a otro.Use the StrConv function to convert one type of string data to another.

Convierta entre tipos de datos.Convert between data types

Vea Funciones de conversión de tipos para ver ejemplos de cómo usar las funciones siguientes para convertir una expresión en un tipo de datos específico: CBool, CByte, ** CCur**, CDate, CDbl, CDec, CInt, CLng, ** CLngLng**, CLngPtr, CSng, ** CStr** y CVar.See Type conversion functions for examples of how to use the following functions to coerce an expression to a specific data type: CBool, CByte, CCur, CDate, CDbl, CDec, CInt, CLng, CLngLng, CLngPtr, CSng, CStr, and CVar.

Para los siguientes procedimientos, consulte las páginas de la función correspondiente: CVErr, Fix y Int.For the following, see the respective function pages: CVErr, Fix, and Int.

Nota

CLngLng es válido solo en plataformas de 64 bits.CLngLng is valid on 64-bit platforms only.

Compruebe los tipos de datos.Verify data types

Para comprobar los tipos de datos, consulte las siguientes funciones:To verify data types, see the following functions:

Valores devueltos para CStrReturn values for CStr

#If expresión ThenIf expression is CStr devuelveCStr returns
BooleanoBoolean Una cadena que contiene True o False.A string containing True or False.
FechaDate Una cadena que contiene una fecha en el formato de fecha corta del sistema.A string containing a date in the short date format of your system.
EmptyEmpty Una cadena de longitud cero ("").A zero-length string ("").
ErrorError Una cadena que contiene la palabra Error, seguida del número de error.A string containing the word Error followed by the error number.
NullNull Un error en tiempo de ejecución.A run-time error.
Otro valor numéricoOther numeric Una cadena que contiene el número.A string containing the number.

Vea tambiénSee also

Soporte técnico y comentariosSupport and feedback

¿Tiene preguntas o comentarios sobre VBA para Office o esta documentación?Have questions or feedback about Office VBA or this documentation? Vea Soporte técnico y comentarios sobre VBA para Office para obtener ayuda sobre las formas en las que puede recibir soporte técnico y enviar comentarios.Please see Office VBA support and feedback for guidance about the ways you can receive support and provide feedback.