« ERRORLEVELを返さないコマンドのエラー判定 | トップページ | VBAのDir()関数のワイルドカードは誤動作する。 »

2008年3月 9日 (日)

VBAで文字列の中身をダンプする。

VBAで文字列の中身をダンプする。

文字列の中に変な文字コードがないかは、VBScriptやJScriptでは、WScript.Echo(escape(文字列))で、確認するのですが、VBAではどうするか?
ScriptControl経由でVBScriptやJScriptのescape()を使うこともできますが、それより、以下のような関数を作って使ったほうが簡単でしょう。

Sub Dump(Text As String)
Dim k As Long
For k = 1 To Len(Text)
Debug.Print k, Mid(Text, k, 1), Hex(Asc(Mid(Text, k, 1)))
Next
End Sub

MsgBoxに出すなら、

Sub Dump(Text As String)
Dim k As Long
Dim a() As String
ReDim a(Len(Text) - 1)
For k = 1 To Len(Text)
a(k - 1) = Join(Array(k, Mid(Text, k, 1), Hex(Asc(Mid(Text, k, 1)))), vbTab)
Next
MsgBox Join(a, vbLf)
End Sub

« ERRORLEVELを返さないコマンドのエラー判定 | トップページ | VBAのDir()関数のワイルドカードは誤動作する。 »