Funkcja usuwająca z tekstu polskie ogonki

przez | 2024-01-15

Tutaj z pomocą przychodzi VBA. Oto prosta funkcja:

Public Function UsunPolskieOgonki(ByVal Text As String) As String
    Text = Replace(Text, "ę", "e")
    Text = Replace(Text, "ó", "o")
    Text = Replace(Text, "ą", "a")
    Text = Replace(Text, "ś", "s")
    Text = Replace(Text, "ł", "l")
    Text = Replace(Text, "ż", "z")
    Text = Replace(Text, "ź", "z")
    Text = Replace(Text, "ć", "c")
    Text = Replace(Text, "ń", "n")
    Text = Replace(Text, "Ę", "E")
    Text = Replace(Text, "Ó", "O")
    Text = Replace(Text, "Ą", "A")
    Text = Replace(Text, "Ś", "S")
    Text = Replace(Text, "Ł", "L")
    Text = Replace(Text, "Ż", "Z")
    Text = Replace(Text, "Ź", "Z")
    Text = Replace(Text, "Ć", "C")
    Text = Replace(Text, "Ń", "N")
    
    UsunPolskieOgonki = Text
End Function

W tej funkcji mamy użytą funkcję Replace 18 razy (gdyż mamy 9 ogonków zapisanych małymi literami i 9 ogonków zapisanych dużymi literami). Jeśli taka rozwleczona funkcja się Tobie nie podoba to możemy „stablicować” ogonki i ich łacińskie odpowiedniki a następnie wywołać funkcję Replace w pętli for.

Public Function UsunPolskieOgonki2(ByVal Text As String) As String
    Dim Ogonki()
    Dim Lacinskie()
    Dim a As Long
    
    Ogonki = Array("ę", "ó", "ą", "ś", "ł", "ż", "ź", "ć", "ń", "Ę", "Ó", "Ą", "Ś", "Ł", "Ż", "Ź", "Ć", "Ń")
    Lacinskie = Array("e", "o", "a", "s", "l", "z", "z", "c", "n", "E", "O", "A", "S", "L", "Z", "Z", "C", "N")
    
    For a = LBound(Ogonki) To UBound(Ogonki)
        Text = Replace(Text, Ogonki(a), Lacinskie(a))
    Next a
    
    UsunPolskieOgonki2 = Text
End Function

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

Witryna wykorzystuje Akismet, aby ograniczyć spam. Dowiedz się więcej jak przetwarzane są dane komentarzy.