Dim Value As Byte
A Byte is an unsigned 8 bit data type. It can represent integer numbers between 0 and 255 and attempting to store a value outside of that range will result in runtime error 6: Overflow
. Byte is the only intrinsic unsigned type available in VBA.
The casting function to convert to a Byte is CByte()
. For casts from floating point types, the result is rounded to the nearest integer value with .5 rounding up.
Byte Arrays and Strings
Strings and byte arrays can be substituted for one another through simple assignment (no conversion functions necessary).
For example:
Sub ByteToStringAndBack()
Dim str As String
str = "Hello, World!"
Dim byt() As Byte
byt = str
Debug.Print byt(0) ' 72
Dim str2 As String
str2 = byt
Debug.Print str2 ' Hello, World!
End Sub
In order to be able to encode Unicode characters, each character in the string takes up two bytes in the array, with the least significant byte first. For example:
Sub UnicodeExample()
Dim str As String
str = ChrW(&H2123) & "." ' Versicle character and a dot
Dim byt() As Byte
byt = str
Debug.Print byt(0), byt(1), byt(2), byt(3) ' Prints: 35,33,46,0
End Sub