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).
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