バイト型配列に入れた16進を10進に変換

バイト型に入れた最大FFの値を255として取り出すのは簡単ですが。

例:

Dim tmp As Long

tmp=&HFF

MsgBox tmp ‘255を表示

複数の配列にまたがった16進を10進に変換する場合についてのメモ。

バイト型配列にFFFとか代入した場合、1つの変数にはFFが最大ですから、

2つの変数に分けて、F,FFと代入されます。

これを、F=15,FF=255と取り出すのではなく、FFF=4095と1つの数字で見る方法。

一度、文字列にして結合してしまえば簡単です。

Dim str(3) As Byte
Dim a As Double
Dim tmp As String

‘FFFを右寄せで代入
str(0) = 0
str(1) = 0
str(2) = 15 ‘&H0F
str(3) = 255 ‘&HFF

tmp = Hex(str(0)) & Hex(str(1)) & Hex(str(2)) & Hex(str(3))
a = Val(”&H” + tmp)

‘a=4095
MsgBox a