How to convert a simple string to a byte array in VBA?

I need to convert a simple string to an array of bytes using excel VBA. This byte array is then used as the request body.

How can i do this?

Thanks.

+7
string excel-vba bytearray
source share
3 answers

If you only need ANSI characters, you can use the StrConv () function as done here .

+8
source share

Matthew answered how to convert to ANSI, but if you want the resulting byte array to still represent the original Unicode string, you just assigned it directly:

Public Sub Main() Dim b() As Byte Dim s As String s = "Whatever" b = s 'Assign Unicode string to bytes.' s = b 'Works in reverse, too!' Debug.Print s End Sub 

That's all. You end up with a 16-element byte array, each subsequent pair describing one Unicode character.

+18
source share
 ' a bit of an example ' had some strings down column G ' nothing in columns "F" or "H" so that current works ' Think about it.. there are many many columns ' so leave blank columns on each side of setsof dats ' then currentregion works ... IFF no blank rows in the data ' ' problem to solve some text was Fred3 John2 Blue3 ' others were Bert 3 Green 2 ... which was the require format ' the ASC char 1 ..255 are the odd or even ' numbered bytes if array is 1 based or 0 based ' Private Sub CommandButton1_Click() Dim RV$, Ra As Range, Ri&, AL%, WSA() As Byte Dim Ci%, WS$, LV As Byte Set Ra = Range("g8").CurrentRegion For Ri = 1 To Ra.Rows.Count WSA = CStr(Ra(Ri, 1).value) AL = UBound(WSA) LV = WSA(AL - 1) ' last char byte value If LV > 47 And LV < 58 Then ' 0 to 9 If WSA(AL - 3) <> 32 Then ' no space " " ReDim Preserve WSA(AL + 2) ' allow 1 more char WSA(AL - 3) = 32 ' put in space WSA(AL - 1) = LV ' return char WS = WSA ' back to a string Ra(Ri, 1) = WS ' back to the cell End If End If Next Ri End Sub ' of course the normal VBAcommands Instr len Mid replace & ' would do the job ... but my brain is lazy and needed some exercise 
-one
source share

All Articles