Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1088to1092
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
Inhaltsverzeichnis

Unicode Kyrillisch mit VBA bearbeiten

Unicode Kyrillisch mit VBA bearbeiten
Otto
Hallo Guten Tag,
Meine Testumgebung: Excel 2003 SP2, Multilingual unter Windows XP SP-2
Ich scheitere zur Zeit an kyrillischen Buchstaben
konkret möchte ich eine Textdatei erstellen, deren Name aus kyrillischen Zeichen besteht und deren Inhalt auch zum Teil aus kyrillischen Zeichen besteht.
Als Testbeispiel habe ich in A1 von "Tabelle1" den Text "Приемни" geschrieben. Nun versuche ich über VBA eine Datei dieses Namens zu erzeugen. Das klappt bei mir nicht.
Hier seht ihr meinen Versuch:
Die Function GetUniCodeString habe ich mir von Bernd bei
http://www.excel-center.de/foren/read.php?2,16535,16541#msg-16541
besorgt. Den Hinweis darauf fand ich hier:
https://www.herber.de/forum/archiv/604to608/t607292.htm
Kann mir bitte jemand die Scheuklappen von den Augen reißen?
Gruß Otto

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Unicode Kyrillisch mit VBA bearbeiten
24.07.2009 09:32:50
bst
Morgen Otto,
keine Ahnung ob es mit VBA überhaupt möglich ist kyrillische Zeichen in den Dateinamen zu bekommen.
Was schon geht ist es eine Unicodedatei mit kyrillischen Zeichen zu erzeugen.
Du musst dazu:
a) Die BOM an den Anfang der Datei schreiben, siehe: http://de.wikipedia.org/wiki/Byte_Order_Mark
b) den ganzen Text inklusive aller Leerzeichen, Absatzmarken, ... mit GetUniCodeString umkodieren, nicht nur die kyrillischen Zeichen selber!
HTH, Bernd
--
Option Explicit

Sub Kyrill()
    Dim strPath As String, strText As String
    
    strPath = "E:\temp\test.txt"
    strText = Worksheets("Tabelle1").Range("A1")
    
    Open strPath For Output As #1
    Print #1, Chr(255); Chr(254); ' die BOM schreiben, Achtung da muss ein ; ans Ende !
    Print #1, GetUniCodeString(strText); ' den Text umkodieren und schreiben, auch hier muss ein ! ans Ende
    Close 1
    Shell "notepad " & strPath, vbMaximizedFocus
End Sub

Function GetUniCodeString(s As String) As String
    Dim i As Integer ' Zähler über die einzelnen Bytes des Unicode-Strings
    
    GetUniCodeString = ""
    For i = 1 To LenB(s)
        GetUniCodeString = GetUniCodeString & Chr(AscB(MidB(s, i, 1)))
    Next
End Function


Anzeige
AW: Unicode Kyrillische Dateinamen mit VBA
24.07.2009 12:02:22
Otto
Hallo Bernd,
vielen Dank für Deine Unicode-Aufklärung mit BOM! Und zusätzlichen Dank für die Anmerkung zum Semikolon am Ende des Print.
Das Schreiben von kyrillischem Text klappt jetzt wunderbar.
Da ich aber mit dem Explorer kyrillische Dateinamen erzeugen kann und auch Russen oder Bulgarinnen sicher ihre Dateien im kyrillischen Zeichensatz benamsen, gehe ich davon aus, dass es dafür auch eine Lösung gibt.
Vielleicht mir hier noch jemand auf die Sprünge helfen!
Danke!
Otto
AW: Unicode Kyrillisch mit VBA bearbeiten
24.07.2009 17:31:27
Anton
Hallo Otto,
probiers so:

Sub b()
  Set fso = CreateObject("Scripting.FileSystemObject")  
  Set MeineDatei = fso.CreateTextFile("D:\temp\" & Range("A1") & ".txt", True, True)  
  For i = 1 To 5  
    MeineDatei.WriteLine Range("A1")
  Next
  MeineDatei.Close
  Set fso = Nothing  
  Shell "notepad " & "D:\temp\" & Range("A1") & ".txt", vbMaximizedFocus
End Sub  

mfg Anton
Anzeige
AW: Unicode Kyrillisch mit VBA bearbeiten
24.07.2009 18:27:22
Otto
Hallo Anton,,
Wunderbar! so hab ich mir das vorgestellt! ohne viele Schnörkel!
Es geht sogar mit Stringvariablen!
Als Testbeispiel habe ich in A1 von "Tabelle1" den Text "Приемни" geschrieben. Nun versuche ich über VBA eine Datei dieses Namens zu erzeugen. Das klappt!

Gruß Otto
AW: Unicode Kyrillisch mit VBA bearbeiten
24.07.2009 22:37:46
bst
Abend Anton,
Sehr schöne Lösung.
cu, Bernd

299 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige