1 1 1 1 1 1 1 1 1 1 Rating 5.00 (5 Votes)

Problemstellung:

Für 32Bit und 64Bit Office Versionen

Wie kann ich in einem String die Umlaute (ä, ö, ü und ß) konvertieren? 

Public Function Umlaut(pString As String) As String
'//********************************************************
'// Diese Funktion ersetzt in einem String sämtliche
'// Umlaute, egal ob gross oder klein geschrieben
'//
'// Original dieser Funktion aus der Tips&Tricks-Sammlung
'// von Reinhard Kraasch (www.kraasch.de)
'//
'//********************************************************
  Dim I As Integer, Ch As String * 1, Ch1 As String * 1, _
  IsUpCase As Boolean, Res As String
  If IsNull(pString) Then Umlaut = Null: Exit Function
  Res = ""
  For I = 1 To Len(pString)
    Ch = Mid(pString, I, 1)
    Ch1 = IIf(I < Len(pString), Mid(pString, I + 1, 1), " ")
    ' Nächstes Zeichen ist kein Kleinbuchstabe:
    IsUpCase = (Asc(Ch1) = Asc(UCase(Ch1)))
    Select Case Asc(Ch)
      Case Asc("Ä"): Res = Res & IIf(IsUpCase, "AE", "Ae")
      Case Asc("Ö"): Res = Res & IIf(IsUpCase, "OE", "Oe")
      Case Asc("Ü"): Res = Res & IIf(IsUpCase, "UE", "Ue")
      Case Asc("ä"): Res = Res & "ae"
      Case Asc("ö"): Res = Res & "oe"
      Case Asc("ü"): Res = Res &a "ue"
      Case Asc("ß"): Res = Res &a "ss"
      Case Else: Res = Res & Ch
    End Select
  Next I
  Umlaut = Res
 
End Function

Aufruf:

Dim x As String
x = Umlaut("Müller")

Das Ergebnis von x wäre "Mueller"

 

Ähnliche Artikel