Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
824to828
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
824to828
824to828
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Unicode Zdes einzelnen Zeichens zurück geben

Unicode Zdes einzelnen Zeichens zurück geben
29.11.2006 09:40:45
Heinrich
Hallo zusammen,
Ich bin gerade dabei mir ein Übersetzungsmodul mit VBA für Autocad zu erstellen. Meine Idee wäre gewesen das alle übersetzten Begriffe in einer Exceltabelle zusammen gefasst werden, ich dann in meiner Autocad-Zeichnung die zu übersetzenden Texte durchlaufe, mir dann den entsprechenden Text aus der Exceltabelle lade und in Autocad einfüge. Mein Problem ist das meine Zielsprache Ukrainisch ist, ich also mit Unicode arbeite die ich dann Zeichenweise in Autocad einfüge.
Das Kyrillische Zeichen das so ähnlich ausieht wie ein A hat den Unicode U+0414; ein text in AutoCAD hat dann als Zeichen den Wert \U+0414.
Meine Frage:
Wie kann ich den Unicode jedes Zeichens aus einer Excelzelle auslesen.
Ich habe zwar über Google und in der VBa-Hilfe jede Menge über Unicode finden, jedoch fehlt mir noch der richtige Einblick.
Die Funktion ASCW() zum Beispiel, hat mich noch nicht zum Ziel geführt.
Kann mir jemand vielleicht helfen?
Mit besten Dank im voraus,
Zippo

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Unicode Zdes einzelnen Zeichens zurück geben
29.11.2006 10:19:16
bst
Morgen Zippo,
mit AscW bist Du aber richtig. Reicht sowas ?
cu, Bernd
--
Option Explicit

'
' liefert einen dezimalen 'Dump' der angegebenen Zelle
'
Public Function DezDump(r As Range) As String
    Dim i As Integer
    Dim ch As String
    
    DezDump = ""
    For i = 1 To Len(r.Value)
        ch = Mid(r.Value, i, 1)
        If AscW(ch) = AscB(ch) Then
            DezDump = DezDump & ch & Format(AscB(ch), "(00) ")
        Else
            DezDump = DezDump & ch & Format(AscW(ch), "(U0000) ")
        End If
    Next
    If DezDump <> "" Then DezDump = Left(DezDump, Len(DezDump) - 1)
End Function



Anzeige
AW: Unicode Zdes einzelnen Zeichens zurück geben
29.11.2006 14:31:22
Zippo
Danke für deine prompte Antwort. Dank deinem Code-Beispiel bin ich dann doch noch auf des Rätsels Lösung gekommen:
Ich hatte ganz vergessen - oder übersehen - das der Unicode in AutoCAD in Hexadezimaler Schreibweise vorhanden sein muss!!.
Servus,
Zippo
Anbei mein Lösungsvorschlag:
Option Explicit
' ------------------------------------------------
' Wandelt jedes Zeichen eines Textes in Unicode um
' ------------------------------------------------
Public &ltpre&gt
Function TXT2UniC(r As Range) As String
Dim i As Integer
Dim ch As String
TXT2UniC = ""
For i = 1 To Len(r.Value)
ch = Mid(r.Value, i, 1)
If AscW(ch) = AscB(ch) Then
TXT2UniC = TXT2UniC & "\U+" & FormatTXT(Trim(CStr(Hex(AscB(ch)))), 4)
Else
TXT2UniC = TXT2UniC & "\U+" & FormatTXT(Trim(CStr(Hex(AscW(ch)))), 4)
End If
Next
End Function&lt/pre&gt
' -----------------------
' Formatiert Zeichenkette
' -----------------------
&ltpre&gt
Function FormatTXT(strText As String, intFormat As Integer) As String
Dim intAnzZeichen As Integer
Dim lngZaehlerTmp As Long
FormatTXT = strText
intAnzZeichen = Len(FormatTXT)
If intAnzZeichen &lt intFormat Then
For lngZaehlerTmp = 1 To (intFormat - intAnzZeichen)
FormatTXT = "0" & FormatTXT
Next lngZaehlerTmp
End If
End Function&lt/pre&gt
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige