変数 Hex関数日本語をHex文字に変換

※より実装に近く表示させる為、コードの改行を避けています。スマホ等で閲覧される際は向きを変えてご覧ください。

※実装するバージョンによってはバージョンアップの仕様により動作しないコードもあります。実装には動作確認の上ご使用下さい。


Option Explicit
'Hex関数
'**************************************************
'サイト等で良く使われる関数(%)に変換又はその逆変換
'===========================================================================


'*****************************************
'Hex関数 日本語をHex文字に変換
'*****************************************

Sub test1()
Const 文字 As String = "ホームページVER10.1" '定数宣言
Debug.Print Hex変換関数(文字)
    MsgBox Hex変換関数(文字)
End Sub

Function Hex変換関数(ByVal 対象文字 As String)
'*****************************************
'Hex関数 日本語をHex文字に変換
'*****************************************
Dim 変換文字() As Byte, 実行数 As Long
    変換文字 = StrConv(対象文字, vbFromUnicode) '文字列を Unicode に変換
    
        For 実行数 = 0 To UBound(変換文字) '配列の指定された次元で使用できる添字の最大値
            Hex変換関数 = Hex変換関数 & "%" & Hex(変換文字(実行数))
        Next
End Function

'--------------------------------------------------------------------------

'*****************************************
'Hex関数 Hex文字を日本語に変換
'*****************************************

Sub test2()
Const Hex文字 = "%83%7A%81%5B%83%80%83%79%81%5B%83%57%56%45%52%31%30%2E%31"
Debug.Print Hex逆変換関数(Hex文字)
    MsgBox Hex逆変換関数(Hex文字)
End Sub

Function Hex逆変換関数(ByVal 対象文字 As StringAs String
'*****************************************
'Hex関数 Hex文字を日本語に変換
'*****************************************
Dim 変換文字() As Byte, 実行数 As Long
    実行数 = 0
        Do While Len(対象文字) > 0
            If Left(対象文字, 1) = "%" Then
                ReDim Preserve 変換文字(0 To 実行数)
                '基数を示すプリフィックス &O (8 進数) や &H (16 進数) は認識
                変換文字(実行数) = Val("&H" & Mid(対象文字, 2, 2))
                対象文字 = Right(対象文字, Len(対象文字) - 3)
                実行数 = 実行数 + 1
            End If
        Loop
    Hex逆変換関数 = StrConv(変換文字, vbUnicode) '文字列を Unicode に変換
End Function

 

 

 

2000年01月01日|[VBサンプルコード]:[変数]