Excel VBAで16進数の文字列をユニコード文字に変換する方法

4桁の16進数の文字列をユニコードに変換する必要があったので、エクセルのマクロで変換しました。

はじめに

業務で「3042→あ」みたいに16進数をユニコード文字に変換する必要がありました。

問題

以下のWEBサイトのツールでも変換はできるのですが、「30423044→あい」のように連続している場合に対応したかったのでエクセルのマクロで変換しました。

Unicodeエスケープシーケンス変換ツール

解決方法

VBAのコードは以下です。

Public Function codes(arg) As String Dim i For i = 1 To Len(arg) Step 4 codes = codes & ChrW("&H" & Mid(arg, i, 4)) Next i
End Function

以下のようにセルに入力すると変換することができます。

おわりに

使う機会は少ないですが、業務で必要だったので4桁の16進数の文字列をユニコード文字に変換するマクロを作成しました。