Data Types

A Data Type refers to how the data is stored in memory and how much space it takes up.
The data type of a variable (or object) tells the compiler the size of the object (ie the number of bytes to use).
You should always try and use the data type that uses the smallest number of bytes to get the job doen.
It is always best to use the data type that uses the smallest amount of space (i.e. bytes) yet can still handle all the data assigned to it.
The data type of a variable determines how the value is represented in memory.
The smaller the bytes the faster it executes.
You should use the data type conversion functions instead of using the Val() function when you want to convert from one data type to another.
All variables must have an associated data type which determines what data can be stored in it.

Data TypeCTypeDefaultRangeSizeAbr.(Prefix) Comments
BooleanCBoolFalseTrue (-1) or False (0)2 bytes
(16 bits)
 (b) The zero value is treated as False
All other values are treated as True.
Use NOT to toggle
ByteCByte 0 to 2551 byte
(8 bits)
 (by) integers often used in conjunction with string operations
Use Long instead
CurrencyCCur0- 9.2 E+14 to + 9.2 E+148 bytes
(64 bits)
@(c) scaled integer
Use Double instead
DateCDate Jan 1 100 to Dec 31 99998 bytes
(64 bits)
 (dt) floating point numbers
Use Long instead
Decimal*CDec - 7.9 E+28 to + 7.9 E+2814 bytes (dec) Variant subtype
Must be declared as a Variant and then converted.
DoubleCDbl0- 1.8 E+308 to + 4.9 E+3248 bytes
(64 bits)
#(db) double precision floating point used for high accuracy
IntegerCInt0- 32,768 to + 32,7672 bytes
(16 bits)
%(i) integer
Use Long instead
LongCLng0- 2,147,483,648 to 2,147,483,6474 bytes
(32 bits)
&(l) long integer
LongLongCLngLng0-9,223,372,036,854,775,808 to 9,223,372,036,854,775,8078 bytes
(64 bits)
 (ll) Added in Office 2010, VBA 7.0
LongPtrCLngPtr    (lp) Added in Office 2010, VBA 7.0
Long on 32 bit
LongLong on 64 bit
Object Nothing 4 bytes
(32 bits)
 (ob) stored as a reference to an object.
SingleCSng0- 1.3 E+38 to + 1.3 E+384 bytes
(32 bits)
!(sng) single precision floating point used when you have fractional numbers
Use Double instead
StringCStr"" 10 bytes + length$(s) fixed and variable length
User Defined     (ud)
Variant Empty 16 - 22 bytes$(v) any data type, typically used for arrays or variants


These are also known as Type Declaration Suffixes
It is possible declare variables by appending a special character to the end of the variable name.

Dim iNumber% 'integer  

© 2022 Better Solutions Limited. All Rights Reserved. © 2022 Better Solutions Limited TopNext