Excel VBA テクニック集
漢字コードから漢字への変換関数





Excel VBA テクニック集



漢字コードから、漢字への変換する計算式です。

シフトJISのコードから漢字への変換する計算式です。
Function Hex_To_SJis(Hex_F As String) As String
    Dim Hex1_W As Long
    Dim Hex2_W As Long
    
    'ヘキサコード(文字4桁)かコードへの変換
    Hex1_W = Hex_Code(Mid(Hex_F, 1, 1)) * 16 _
            + Hex_Code(Mid(Hex_F, 2, 1))
    Hex2_W = Hex_Code(Mid(Hex_F, 3, 1)) * 16 _
            + Hex_Code(Mid(Hex_F, 4, 1))
    
    '文字列をUnicodeに変換します。
    Hex_To_SJis = StrConv(ChrB(Hex1_W) & ChrB(Hex2_W), vbUnicode)
End Function

'ヘキサコード(文字)から数値への変換関数
Private Function Hex_Code(Hex_F As String) As Long
    Const Hex_T = "0123456789ABCDEF"
    Hex_Code = InStr(Hex_T, UCase(Hex_F)) - 1
End Function
この計算式で、下記のような表ができます。
たとえば、92行S列の計算式は「=Hex_To_SJis("889F")」になり、計算結果は「亜」になります。


 さて、初めてコンピュータが世の中に出たとき、使ったのは英語圏の人たちなので、
1バイト文字で十分でした。日本では、「漢字が使いたい」という要望から、2バイト文字が
考えられて、JISコード体系が作られました。各メーカーは、運用上、JISコード体系を
参考にさまざまなコード体系ができました。PC98シリーズでは、1バイト文字・2バイト文字
が混在できるコード体系「シフトJIS」が採用されました。
 世界レベルで統一しようとしてできたのが、Unicode体系です。
旧1バイト文字、0〜9,A〜Bは、左側にヘキサで00が付いて2バイト文字になります。

Unicodeから、漢字への変換する計算式です。
Function Hex4_To_Unicode(Hex_F As String) As String
    Dim Hex_W As Long
    
    Hex_W = Hex_Code(Mid(Hex_F, 1, 1)) * 16 * 16 * 16 _
            + Hex_Code(Mid(Hex_F, 2, 1)) * 16 * 16 _
            + Hex_Code(Mid(Hex_F, 3, 1)) * 16 _
            + Hex_Code(Mid(Hex_F, 4, 1))
    Hex4_To_Unicode = Application.Unichar(Hex_W)
End Function

Function Hex5_To_Unicode(Hex_F As String) As String
    Dim Hex_W As Long
    
    Hex_W = Hex_Code(Mid(Hex_F, 1, 1)) * 16 * 16 * 16 * 16 _
            + Hex_Code(Mid(Hex_F, 2, 1)) * 16 * 16 * 16 _
            + Hex_Code(Mid(Hex_F, 3, 1)) * 16 * 16 _
            + Hex_Code(Mid(Hex_F, 4, 1)) * 16 _
            + Hex_Code(Mid(Hex_F, 5, 1))
    Hex5_To_Unicode = Application.Unichar(Hex_W)
End Function
この計算式で、下記のような表ができます。

00XX〜FFXX


100XX〜1FFXX


200XX〜2FFXX



「こだわりハウス」写真館| 数学公式集| ピンポイントストリートビュー| FaceBook| Excel Vba テクニック集| Excel 計算式解析・他解析| 富山の建築家| Excel 計算式解析・他解析| 積分の定義・積分の記号の意味の研究|