« 文字列中の異文字を16進表示する関数(VBScript) | トップページ | 文字列中の異文字を16進表示する関数(VB.NET) »

2008年9月29日 (月)

文字列中の異文字を16進表示する関数(VBA)

VBAに焼き直して、

Sub a()
s = "あアabc" & Chr(10) & ChrW(128)
Debug.Print xString(s)
End Sub

Function xString(ByVal s As String) As String
Dim k As Long, c As String
For k = 1 To Len(s)
  c = Mid(s, k, 1)
  If 31 < AscW(c) And AscW(c) < 128 Then
  ElseIf &Hff60 < AscW(c) And AscW(c) < &Hffa0 Then
  ElseIf Chr(Asc(c)) = c  And Asc(c) < 0 Then
  Else
    c = Hex(AscW(c))
    c = "{" & String(Len(c) Mod 2, 48) & c & "}"
  End If
  xString = xString & c
Next
End Function

« 文字列中の異文字を16進表示する関数(VBScript) | トップページ | 文字列中の異文字を16進表示する関数(VB.NET) »