Anzeige
Archiv - Navigation
604to608
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
604to608
604to608
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Unicode bearbeiten mit VBA

Unicode bearbeiten mit VBA
03.05.2005 23:29:34
Frank
Hallo, ich habe Probleme beim Verarbeiten von Unicode mit VBA
Ich habe Texte, die in Excel-Tabellen im Unicode vorliegen
(diverse Spalten in Kyrillisch oder chinesisch ..)
Diese Texte werden in Excel-Tabellen gepflegt
und müssen für andere Systeme als Unicode in einer Datei übergeben werden.
Jeglicher erforderliche Code muss sich in der Arbeitsmappe befinden
oder Teil eines normalen Windows-Betriebssystems sein,
keine ADD-Ins etc.
Mein Problem: Bei der Verarbeitung von Unicode mit VBA wie
s1=trim(cells(x,y)) oder
s1="nix " &cells(x,y)
wird jedes Unicode-Zeichen in "?" AUSGETAUSCHT
Wie kann ich in VBA abfragen, dass es sich um Unicode handelt?
Kann ich Unicode auch in einen Dateityp *.txt schreiben oder
konvertiert Excel im Hintergrund wieder alles in ASCII (8bit)?
Wo kann ich zum Thema Verarbeitung von Unicode mit VBA gute Infos bekommen?
Wer weiss Rat?
Danke
Frank

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Unicode bearbeiten mit VBA
03.05.2005 23:38:53
Hubert
Hi, vielleicht hilft es:
Installieren der universalen Schriftart für Unicode
Die Schriftart Arial Unicode MS ist eine reine Unicode-Schriftart. Sie enthält alle im Unicode 2.1-Standard definierten Zeichen, Ideogramme und Symbole.
In Microsoft Windows 2000 oder Windows Millennium Edition
Beenden Sie alle Programme.
Doppelklicken Sie in der Systemsteuerung auf das Symbol Software.
Führen Sie eine der folgenden Aktionen aus:
Wenn Sie Ihr Microsoft Office-Programm als Teil eines Office-Pakets installiert haben, klicken Sie im Feld Zurzeit installierte Programme auf Microsoft Office und dann auf die Schaltfläche Ändern.
Wenn Sie Ihr Office-Programm einzeln installiert haben, klicken Sie im Feld Zurzeit installierte Programme auf den Namen Ihres Programms und dann auf die Schaltfläche Ändern.
Klicken Sie im Dialogfeld Microsoft Office-Setup auf Features hinzufügen oder entfernen und anschließend auf Weiter.
Klicken Sie auf das Pluszeichen (+) neben Gemeinsam genutzte Office-Features.
Klicken Sie auf das Pluszeichen (+) neben Internationale Unterstützung.
Klicken Sie auf das Symbol neben Universale Schriftart, und wählen Sie die gewünschte Installationsoption aus.
In Microsoft Windows 98 oder Windows NT 4.0
Beenden Sie alle Programme.
Doppelklicken Sie in der Systemsteuerung auf das Symbol Software.
Führen Sie eine der folgenden Aktionen aus:
Wenn Sie Ihr Office-Programm als Teil eines Office-Pakets installiert haben, klicken Sie auf der Registerkarte Installieren/Deinstallieren auf Microsoft Office und dann auf Hinzufügen/Entfernen.
Falls Sie das Office-Programm einzeln installiert haben, klicken Sie auf der Registerkarte Installieren/Deinstallieren auf den Namen des Programms und dann auf Hinzufügen/Entfernen.
Klicken Sie im Dialogfeld Microsoft Office-Setup auf Features hinzufügen oder entfernen und anschließend auf Weiter.
Klicken Sie auf das Pluszeichen (+) neben Gemeinsam genutzte Office-Features.
Klicken Sie auf das Pluszeichen (+) neben Internationale Unterstützung.
Klicken Sie auf das Symbol neben Universale Schriftart, und wählen Sie die gewünschte Installationsoption aus.
Anmerkung Auf Grund ihrer beträchtlichen Größe und der typographischen Kompromisse, die für eine solche Schriftart eingegangen werden müssen, sollten Sie Arial Unicode MS jedoch nur verwenden, wenn keine Möglichkeit besteht, mehrere Schriften für unterschiedliche Schriftsysteme zu verwenden. Wenn Sie beispielsweise in Microsoft Access mehrsprachige Daten aus unterschiedlichen Schriftsystemen verarbeiten, können Sie Arial Unicode MS als Schriftart für die Anzeige der Datentabellen verwenden, da in Access nicht viele unterschiedliche Schriftarten dargestellt werden können.
Anzeige
AW: Unicode bearbeiten mit VBA
04.05.2005 00:03:23
Luc:-?
Hallo Frank,
tja, ich weiß ja nicht wie du dein Problem mit "normalen" Mitteln lösen willst (falls das Verfahren im anderen Vorschlag nicht ausreicht). Als ich auf dieses Problem stieß, habe ich 3 nutzerdefinierte Funktionen (udF) geschrieben, die ich z.B. in einer Tabelle zur Darstellung von Fonts und ihren Subsets (im Unicode-Wertebereich) benutze. Mit speziellen "Lupen" kann ich auf dieser Tabelle einzelne Zeichen vergrößert darstellen, ihren Code auf verschiedene Weise angeben und in der bzw. mit der Lupe (ein Formobjekt) kopieren und im letzteren Fall mit Hilfe einer UserForm auch direkt das Ziel des Zeichentransports angeben. Wenn du an den Funktionen interessiert bist - sie könnten ja auch in Modulen deines Projektes notiert wdn -, melde dich noch mal.
Gruß Luc :-?
Anzeige
AW: Unicode bearbeiten mit VBA
04.05.2005 08:57:10
Frank
Danke für die Antworten,
nur mein Problem ist nicht die Eingabe oder Anzeige in Excel
- Ariel Universal wird bereits benutzt, die Anzeige ist korrekt
- ich kann die Texte zwar nicht lesen,
die Eingaben erfolgen durch russische oder chinesiche Kollegen
mit entsprechender Tastatur
Das Problem ist die Verarbeitung von Unicode mit VBA.
Den einzigen Befehl, den ich für 16-Bit Zeichensätze gefunden habe ist ASCW()
Alle anderen (probierten) Stringverarbeitungen mit VBA ergeben nur "?" für jedes Unicode-Zeichen.
Ich habe meistens ca. 1000 Zeilen,
- deren Inhalt per VBA geprüft (Länge, nicht erlaubte Zeichen, ...)
- die Texte einzelner Zellen werden neu zusammengestellt und ergänzt
- die neu zusammengestellten Texte werden zeilenweise in eine Datei geschrieben
- diese Datei wird zur Eingabe von mehrsprachigen Kommentaren
in programmierbaren Steuerungen sowie Störmeldesystemen benötigt
Die Excel-Tabellen mit den Zusätzen zur Prüfung und Erzeugung der (Text)-Dateien sollen ohne Zusatzinstallationen funktioniern - auch wenn's in VBA etwas umständlich werden sollte.
Frank
Anzeige
AW: Unicode bearbeiten mit VBA
04.05.2005 09:46:32
bst
Nochmals Hallo,
IMHO täuscht Du Dich da.
Unicodezeichen sind wohl weder im VBA-Debugfenster noch via MsgBox korrekt darstellbar.
Trotzdem funktionieren die meisten (alle?) String-Funktionen. s.u.
Schau Dir auch mal die VBA-Hilfe zu ASC/ASCB/ASCW, CHR/CHRB/CHRW sowie LEN/LENB an.
Warum es kein LENW gibt wissen wohl nur die M$-Götter ;-)
cu, Bernd
--
Option Explicit

Sub Bla()
Dim s As String, ch As String
Dim i As Integer
s = " Hallo " & ChrW(2333) & ChrW(2334) & "_" & ChrW(8304) & ChrW(8309) & " "
Cells(1, 1).Value = s
Cells(1, 2).Value = Mid(s, 8, 2)
Cells(1, 3).Value = Trim(s)
Cells(1, 4).Value = Replace(s, "Hallo", "ByeBye")
With Range("A1:D1").Font
.Name = "@Arial Unicode MS"
.Size = 16
End With
End Sub

Anzeige
Vielen Dank, muss erst mal weiterüben
04.05.2005 13:02:30
Frank
Danke für die prompten Tipps.
Auf Anhieb ging's natürlich erst mal nicht.
Im Augenblick habe ich zuviel Anderes um die Ohren.
Morgen habe ich mehr Zeit zum Testen.
Aber nicht vergessen: morgen ist ein Feiertag,
also raus an die frische Luft!
Tschüss Frank
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige