Guten Morgen allerseits
Ich habe ein Problem, und zwar immer wenn eine neue Mail ankommt, wird ein VBA Makro getriggert und löst ein Mail to PDF Script aus.
Um ungültige Pfade zu vermeiden setze ich dieses Script ein: (Das vorangehende Script erzeugt einen Ordner in einem Verzeichnis mit dem Betreff als Ordnername) Als Beispiel: ??
Function CleanFileName(s As String) As String
Dim result As String
Dim i As Long, c As String
Dim illegalChars As Variant
' 1. Prefixe entfernen
Dim prefixes As Variant, p As Variant
prefixes = Array("AW: ", "Fwd: ", "Re: ", "WG: ", " ?", "?")
For Each p In prefixes
s = Replace(s, p, "")
Next
' 2. Verbotene Zeichen mit Unterstrich ersetzen
illegalChars = Array("[", "]", "\", "/", ":", "*", "<", ">", "|", Chr(10), Chr(13), " ¦ ", "&", "%", " _", "__")
For Each p In illegalChars
s = Replace(s, p, "_")
Next
' 4. Nur gültige Zeichen übernehmen
For i = 1 To Len(s)
c = Mid(s, i, 1)
If AscW(c) < 55296 Or AscW(c) > 57343 Or c <> "?" Then
result = result & c
End If
Next
CleanFileName = Trim(result)
End Function
Das Problem dabei ist, dass gerade bei Newslettern oder aber auch andere Mails häufig Emojis oder andere moderne Symbole im Betreff stehen haben.
Wenn ich den Betreff als String in eine Variable lese, dann wird aus dem Emoji ein "??". Das Makro aber erkennt dieses "'?" nicht als ein Fragezeichen und die Routine von oben, das explizit "?" ausfindig machen sollte und es entfernen sollte, löscht es nicht heraus.
Hat jemand eine Idee für einen Workaround?
Gruss
|