Forums Neueste Beiträge
 

[VBA] Allgemeine Frage

21/09/2007 - 10:15 von Michael Mueller | Report spam
Hi.

Gibt es im VBA eine einfache Möglichkeit aus einer Zeichenkette, die in
Hexadezimal vorliegt eine Text zu machen und umgekehrt?
Beispiel:
6D6D6C <=> mml

Hab schon was programmiert, aber mir wàre eine "einzeilige" Lösung lieber
;-)

Danke
Michi
 

Lesen sie die antworten

#1 Alexander Wolff
22/09/2007 - 13:23 | Warnen spam
Gibt es im VBA eine einfache Möglichkeit aus einer Zeichenkette, die in
Hexadezimal vorliegt eine Text zu machen und umgekehrt?
Beispiel:
6D6D6C <=> mml



Wahrscheinlich genau wie bei Dir:

Sub t()
MsgBox HexInStr(StrInHex("àöGGhHjÿ")) 'muss das gleiche zurückgeben!
End Sub

Function StrInHex(a) '"weiß" -> "776569DF"
For i = 1 To Len(a)
StrInHex = StrInHex & _
Hex(Int(Asc(Mid(a, i, 1)) / 16)) & _
Hex((Asc(Mid(a, i, 1)) Mod 16))
Next
End Function

Function HexInStr(a) '"776569DF" -> "weiß"
For i = 1 To Len(a) Step 2
HexInStr = HexInStr & _
Chr(CDec("&H" & Mid(a, i, 1)) * 16 + _
CDec("&H" & Mid(a, i + 1, 1)))
Next
End Function

Zum Testen folgende Hexfolge (Achtung, Umbrüche MÜSSEN raus!):

=HexInStr("
41636874756E6720626569204D696428293A2044696520416E676162652064657320332E
20506172616D6574657273206973742062656920486578496E537472207A77696E67656E
64206E6F7477656E6469672E20576172756D2C20776569DF20696368206E696368742E20
536963686572686569747368616C6265722068616265206963682064696573656E206569
67656E746C696368206F7074696F6E616C656E20506172616D6574657220617563682062
656920537472496E486578206D6974207365696E656D2044656661756C74207370657A69
66697A696572742E")
Moin+Gruss Alexander - MVP für MS Excel - www.xxcl.de - mso2000sp3 --7-2

Ähnliche fragen