16 進数をテキストに変換する関数を以下に示します。ほとんどの 16 進数からテキストへの変換では問題なく動作しますが、異常な結果が得られます。
たとえば、16 進値は次のとおりです。
050003d40201414c4552542d42656c6f772038353435206966204e462054726164657320666f722031352d3230206d696e75746573202c77617463682050414e49432050414e4943207570746f20353439332d2d383437360d0a0d0a53656c6c204549434845522061742032343931302e2e2e73746f706c6f7373732032353
hex2text 関数を使用して得た結果 = |
正しい結果は次のようになります。
ALERT-Below 8545 if NF Trades for 15-20 minutes ,watch PANIC PANIC upto 5493--8476........
(注: hex2ascii 変換 Web サイトhttp://www.rapidtables.com/convert/number/hex-to-ascii.htmを使用して正しい結果を取得しました)
私の Hex2text 関数は次のとおりです。
Public Function HexToText(text As Range) As String
Dim i As Integer
Dim DummyStr As String
For i = 1 To Len(text) Step 2
DummyStr = DummyStr & Chr(Val("&H" & (Mid(text, i, 2))))
DoEvents
Next i
HexToText = DummyStr
End Function