Habe schon mehrmals den Hinweis auf einen Rekorder gelesen, kenne ich aber leider nicht und weis auch nicht wie und wo zu finden und zu bedienen.
Für mein angefragtes Problem Zellinhalt auf UTF-8 prüfen/wandeln bevor #Print konnte ich inzwischen bereits eine Lösung finden und zwar habe ich meine erzeugte KML-Struktur, wird ja für jeden Datensatz extra erstellt, in eine Variable gelegt und mit dieser rufe ich die Funktion
OneLine = Chr(9) + "
Chr(9) + Chr(9) + "
Chr(9) + Chr(9) + "" + _
IIf(Len(A04) > 0, A004, "") + _
IIf(Len(A05) > 0, A005 + "" + vbCrLf, "") + _
IIf(Len(A07) > 0, Chr(9) + Chr(9) + A007 + vbCrLf, "") + _
Chr(9) + Chr(9) + "
"
"
Chr(9) + "
Print #1, GetUTF8String(OneLine)
Meine momentane Lösung sieht also so aus, gefunden im Beitrag von bst vom 20.10.2006:
'
' frei nach http://www.vovisoft.com/unicode/UniFunctions.htm#ToUTF8
'
Public Function GetUTF8String(s As String) As String
Dim i As Integer ' Zähler über die einzelnen Zeichen des utf16-Strings
Dim utf16 As Long, uc(2) As Byte
GetUTF8String = ""
For i = 1 To Len(s)
utf16 = AscW(Mid(s, i, 1))
If utf16
auf welche dann die Korrektur auf UTF-8 durchführt.
Anschließend wird dieser Datensatz sofort über Print #1 in den bereits vorher angelegen KML-File weggeschrieben. Nun erfolgt das gleiche Spiel mit dem nächsten Datensatz bis eben alle durch sind.
Hätte nicht gedacht, das diese Prüfung der gesamten Variable(online) so schnell vor sich geht da er ja jeden Buchstaben prüfen muss.
Bin aber noch immer der Meinung, da ja nicht in allen Zellen Werte stehen (z.B. PLZ, TelNr., Faxnr.,WEB, Email usw.) die einer UTF-8 Wandlung zugeführt werden müssen, dass eine Prüfung der Variable nach auslesen aus der Zelle einfacher und schneller sein könnte.
Nur den Weg dazu finde ich leider nicht das nach Prüfung in der Funktion GetUTF8String der dabei entstandene Wert an die Ursprungsvariable zurück gegeben wird.
Gruß Siegfried