Pagina 1 din 1

Inlocuire automata a diacriticelor in Word (Macro)

Scris: 13 Noi 2018, 15:50
de Campus
Salutare
Am adaptat un macro pentru a inlocui automat in Word diacriticele vechi (cu sedilă) cu diacritice noi (cu virgulă).
Problema este că, începând cu word 2013, autocorectul nu recunoaște diacriticele vechi și era nevoie de o soluție rapidă pentru a le înlocui pentru că folosesc foarte mult această funcție.

Pentru a-l instala în Word:
1. se merge la View - Macros
2. în fereastra Macros la Macro name se scrie InlocuireDiacritice si se alege Create
3. In fereastra de editare a macro-ului din Microsoft VBA se selecteaza tot textul si se inlocuieste cu codul de mai jos. Apoi se salveaza si se inchide Microsoft VBA.

Pentru a rula macro-ul eu l-am asociat cu o scurtatura de taste:
Astfel am mers in options - Customize ribbon - Keyboard shortcuts - butonul customize
La Categories am alse Macros din lista - s-a selectat automat in lista de macro-uri inlocuire diacritice
In edit box-ul cu press new shortcut key am apasat scuratura de taste
Daca scurtatura este deja alocata va aparea un mesaj cu Currently assigned to .blablabla cautati alta scuratura (eu am gasit alt-F2 unnasigned - neasociata)
Apoi am apasaty butonul Assign.

Iata si codul macro-ului

Cod: Selectaţi tot

Sub InlocuireDiacritice()
'
'	Înlocuiește automat diacriticele cu sedilă cu diacritice cu virgulă
'	Autor: Campus 
'	campus@pontes.ro
'
	' Ș mare 
    Selection.Find.Execute Replace:=wdReplaceAll
    Selection.Find.ClearFormatting
    Selection.Find.Replacement.ClearFormatting
    With Selection.Find
        .Text = ChrW(350)
        .Replacement.Text = ChrW(536)
        .Forward = True
        .Wrap = wdFindContinue
        .Format = False
        .MatchCase = True
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
    End With
	' Ș mic 
    Selection.Find.Execute Replace:=wdReplaceAll
    Selection.Find.ClearFormatting
    Selection.Find.Replacement.ClearFormatting
    With Selection.Find
        .Text = ChrW(351)
        .Replacement.Text = ChrW(537)
        .Forward = True
        .Wrap = wdFindContinue
        .Format = False
        .MatchCase = True
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
    End With
	' Ț mare 
    Selection.Find.Execute Replace:=wdReplaceAll
    Selection.Find.ClearFormatting
    Selection.Find.Replacement.ClearFormatting
    With Selection.Find
        .Text = ChrW(354)
        .Replacement.Text = ChrW(538)
        .Forward = True
        .Wrap = wdFindContinue
        .Format = False
        .MatchCase = True
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
    End With
	' ț mic 
    Selection.Find.Execute Replace:=wdReplaceAll
    Selection.Find.ClearFormatting
    Selection.Find.Replacement.ClearFormatting
    With Selection.Find
        .Text = ChrW(355)
        .Replacement.Text = ChrW(539)
        .Forward = True
        .Wrap = wdFindContinue
        .Format = False
        .MatchCase = True
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
    End With
    
End Sub