変数 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 String) As 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 |