「vba バイト配列を2バイト毎に処理」
という検索キーワードをきっかけにして、Byte配列を2バイトごとに処理するマクロをご紹介しました。
もちろんこの処理で、文字ごとの文字コードを取得することもできます。
[スポンサードリンク]
Byte配列から文字コードを取得するサンプルマクロ
以下のSubプロシージャを実行すると、定数・ORGに指定された「イロハ」という文字列の、各文字と文字コード番号が順番にメッセージボックスに表示されます。
Sub Byte配列で文字コードを確認する()
Const ORG = "イロハ"
For i = 0 To (UBound(arr_org) - 1) Step 2
arr_ret(0) = arr_org(i)
arr_ret(1) = arr_org(i + 1)
ret = arr_ret
MsgBox _
ret & vbCrLf & _
Hex(arr_ret(1)) & Hex(arr_ret(0))
Next i
End Sub
Const ORG = "イロハ"
Dim arr_org() As Byte
Dim arr_ret(0 To 1) As Byte
Dim ret As String
Dim i As Long
For i = 0 To (UBound(arr_org) - 1) Step 2
arr_ret(0) = arr_org(i)
arr_ret(1) = arr_org(i + 1)
ret = arr_ret
MsgBox _
ret & vbCrLf & _
Hex(arr_ret(1)) & Hex(arr_ret(0))
Next i
End Sub
サンプルマクロの注意点
構造は、既にご紹介しているByte配列を2バイトごとに処理するマクロと同じです。
注意点は、2バイトで表される1文字のバイトオーダー・バイトの並び順がリトルエンディアンになっているため、文字コードを表示する部分で、
MsgBox _
ret & vbCrLf & _
Hex(arr_ret(1) ) & Hex(arr_ret(0) )
のように、並べ変えている点です。
関連語句
VBA, Visual Basic for Applications, Unicode
[スポンサードリンク]
- Newer:Unicodeの文字コード番号・コードポイントを調べる
- Older:シートのコピーをイミディエイトウィンドウから
Home » エクセルマクロ・Excel VBAの使い方 » 配列 » Byte配列で文字コードを取得する