View Single Post
 
Old 11-02-2025, 03:24 PM
vivka vivka is offline Windows 7 64bit Office 2016
Expert
 
Join Date: Jul 2023
Posts: 306
vivka is on a distinguished road
Default

Hi, RobiNew! Not elegant but works. I couldn't make VBA see Array() or Split() functions with diacritics or their Uncodes however I tried. So I came up with this "primitive" code.
Code:
Sub RemoveDiacritics()

Dim rng As range
    
    Set rng = Selection.range
    With rng.Find
        .ClearFormatting
        .Replacement.ClearFormatting
        .text = ChrW(192)
        .Replacement.text = "A"
        .Forward = True
        .Wrap = wdFindStop
        .Format = False
        .MatchAllWordForms = False
        .MatchSoundsLike = False
        .MatchWildcards = True
        .Execute Replace:=wdReplaceAll
        .text = ChrW(193)
        .Replacement.text = "A"
        .Execute Replace:=wdReplaceAll
        .text = ChrW(194)
        .Replacement.text = "A"
        .Execute Replace:=wdReplaceAll
        .text = ChrW(195)
        .Replacement.text = "A"
        .Execute Replace:=wdReplaceAll
        .text = ChrW(196)
        .Replacement.text = "A"
        .Execute Replace:=wdReplaceAll
        .text = ChrW(197)
        .Replacement.text = "A"
        .Execute Replace:=wdReplaceAll
        .text = ChrW(198)
        .Replacement.text = "A"
        .Execute Replace:=wdReplaceAll
        .text = ChrW(200)
        .Replacement.text = "E"
        .Execute Replace:=wdReplaceAll
        .text = ChrW(201)
        .Replacement.text = "E"
        .Execute Replace:=wdReplaceAll
        .text = ChrW(202)
        .Replacement.text = "E"
        .Execute Replace:=wdReplaceAll
        .text = ChrW(203)
        .Replacement.text = "E"
        .Execute Replace:=wdReplaceAll
        .text = ChrW(204)
        .Replacement.text = "I"
        .Execute Replace:=wdReplaceAll
        .text = ChrW(205)
        .Replacement.text = "I"
        .Execute Replace:=wdReplaceAll
        .text = ChrW(206)
        .Replacement.text = "I"
        .Execute Replace:=wdReplaceAll
        .text = ChrW(207)
        .Replacement.text = "I"
        .Execute Replace:=wdReplaceAll
        .text = ChrW(209)
        .Replacement.text = "N"
        .Execute Replace:=wdReplaceAll
        .text = ChrW(210)
        .Replacement.text = "O"
        .Execute Replace:=wdReplaceAll
        .text = ChrW(211)
        .Replacement.text = "O"
        .Execute Replace:=wdReplaceAll
        .text = ChrW(212)
        .Replacement.text = "O"
        .Execute Replace:=wdReplaceAll
        .text = ChrW(213)
        .Replacement.text = "O"
        .Execute Replace:=wdReplaceAll
        .text = ChrW(214)
        .Replacement.text = "O"
        .Execute Replace:=wdReplaceAll
        .text = ChrW(217)
        .Replacement.text = "U"
        .Execute Replace:=wdReplaceAll
        .text = ChrW(218)
        .Replacement.text = "U"
        .Execute Replace:=wdReplaceAll
        .text = ChrW(219)
        .Replacement.text = "U"
        .Execute Replace:=wdReplaceAll
        .text = ChrW(220)
        .Replacement.text = "U"
        .Execute Replace:=wdReplaceAll
        .text = ChrW(221)
        .Replacement.text = "Y"
        .Execute Replace:=wdReplaceAll
        .text = ChrW(224)
        .Replacement.text = "a"
        .Execute Replace:=wdReplaceAll
        .text = ChrW(225)
        .Replacement.text = "a"
        .Execute Replace:=wdReplaceAll
        .text = ChrW(226)
        .Replacement.text = "a"
        .Execute Replace:=wdReplaceAll
        .text = ChrW(227)
        .Replacement.text = "a"
        .Execute Replace:=wdReplaceAll
        .text = ChrW(228)
        .Replacement.text = "a"
        .Execute Replace:=wdReplaceAll
        .text = ChrW(229)
        .Replacement.text = "a"
        .Execute Replace:=wdReplaceAll
        .text = ChrW(232)
        .Replacement.text = "e"
        .Execute Replace:=wdReplaceAll
        .text = ChrW(233)
        .Replacement.text = "e"
        .Execute Replace:=wdReplaceAll
        .text = ChrW(234)
        .Replacement.text = "e"
        .Execute Replace:=wdReplaceAll
        .text = ChrW(235)
        .Replacement.text = "e"
        .Execute Replace:=wdReplaceAll
        .text = ChrW(236)
        .Replacement.text = "i"
        .Execute Replace:=wdReplaceAll
        .text = ChrW(2374)
        .Replacement.text = "i"
        .Execute Replace:=wdReplaceAll
        .text = ChrW(238)
        .Replacement.text = "i"
        .Execute Replace:=wdReplaceAll
        .text = ChrW(241)
        .Replacement.text = "n"
        .Execute Replace:=wdReplaceAll
        .text = ChrW(242)
        .Replacement.text = "o"
        .Execute Replace:=wdReplaceAll
        .text = ChrW(243)
        .Replacement.text = "o"
        .Execute Replace:=wdReplaceAll
        .text = ChrW(244)
        .Replacement.text = "o"
        .Execute Replace:=wdReplaceAll
        .text = ChrW(245)
        .Replacement.text = "o"
        .Execute Replace:=wdReplaceAll
        .text = ChrW(246)
        .Replacement.text = "o"
        .Execute Replace:=wdReplaceAll
        .text = ChrW(249)
        .Replacement.text = "u"
        .Execute Replace:=wdReplaceAll
        .text = ChrW(250)
        .Replacement.text = "u"
        .Execute Replace:=wdReplaceAll
        .text = ChrW(251)
        .Replacement.text = "u"
        .Execute Replace:=wdReplaceAll
        .text = ChrW(252)
        .Replacement.text = "u"
        .Execute Replace:=wdReplaceAll
        .text = ChrW(253)
        .Replacement.text = "y"
        .Execute Replace:=wdReplaceAll
        .text = ChrW(255)
        .Replacement.text = "y"
        .Execute Replace:=wdReplaceAll
End With
End Sub

Last edited by vivka; Yesterday at 09:40 AM.
Reply With Quote