SevenModeratorDin: Ţara Perfectului Simplu
|
|
1 Redau mai jos micuţul macroul care converteşte toate bullets în caractere text. Macroul înlocuieşte absolut toate marcajele de tip bullets, adică atât bullets cât şi numerotarea. [Opţiunea similară din AutoCorect înlocuieşte doar buletts de pit linie de dialog redată prin EmDash, EnDash, Cratima şi Caracter Bar.] Nume macrou "Bullets_in_Text" Macroul este integrat în pachetul "Convert".
Code:
'======================================================================
Sub Bullets_in_Text()
'
ActiveDocument.ConvertNumbersToText
End Sub
'====================================================================== |
2 Redau mai jos macroul Corectare_Punctuatie, aşa cum l-am completat în acest moment. Nu am reuşit să adaug şi explicaţii după fiecare linie, aşa că explicaţiile le postez după macrou. Nume macrou "Corectare_Punctuatie" Macroul este integrat în pachetul "Convert".
Atenţie! Nu-l copiaţi deocamdată până cu avem nişte confirmări de la @atari.
Code:
'======================================================================
Sub Corectare_Punctuatie()
Dim timp As Single: timp = Timer
' Options.DefaultHighlightColorIndex = wdBrightGreen 'sterge linia asta pentru a nu evidentia schimbarile
Dim perechi() As Variant
perechi = Array( _
" ", " ", _
"^t", " ", _
" ", " ", _
"...", "…", _
"....", "…", _
",..", "…", _
".,.", "…", _
"..,", "…", _
"^p ", "^p", _
" ^p", "^p")
InlocuiriMultiple lista:=perechi, cu_meta:=False
perechi = Array( _
" .", ".", _
" ,", ",", _
" :", ":", _
" ;", ";", _
" ?", ".", _
" !", "!", _
" Chr(40)", "Chr(40)", _
" Chr(91)", "Chr(91)", _
" Chr(123)", "Chr(123)", _
" Chr(171)", "Chr(171)", _
"Chr(41) ", "Chr(41)", _
"Chr(93) ", "Chr(93)", _
"Chr(125) ", "Chr(125)", _
"Chr(187) ", "Chr(187)", _
"? …", "?…", _
"? …", "?…", _
" ", " ")
InlocuiriMultiple lista:=perechi, cu_meta:=False
MsgBox "Numarul total de cuvinte: " & ActiveDocument.Words.count & _
", timp de executie: " & Format(Round(Timer - timp, 3), "0.###") & " secunde", vbOKOnly, _
"Corectare_Punctuatie"
End Sub
'====================================================================== |
Explicaţii înlocuiri:
Prima listă
Code:
perechi = Array( _
" " , " ", _ ' trei spaţii consecutive se înlocuiesc cu un singur spaţiu
"^t" , " ", _ ' tab se înlocuieşte cu un spaţiu
" " , " ", _ ' două spaţii consecutive se înlocuiesc cu un singur spaţiu
"..." , "…", _ ' trei puncte se înlocuiesc cu Elipsis
"...." , "…", _ ' patru puncte se înlocuiesc cu Elipsis
",.." , "…", _ ' trei semne puncte şi virgule se înlocuiesc cu Elipsis
".,." , "…", _ ' trei semne puncte şi virgule se înlocuiesc cu Elipsis
"..," , "…", _ ' trei semne puncte şi virgule se înlocuiesc cu Elipsis
"^p " , "^p", _ ' şterge spaţiu la început de paragraf
" ^p" , "^p", _ ' şterge spaţiu la sfârşit de paragraf |
A doua listă
Code:
perechi = Array( _
" ." , ".", _ ' şterge spaţiu înainte de punct
" ," , ",", _ ' şterge spaţiu înainte de virgulă
" :" , ":", _ ' şterge spaţiu înainte de două puncte
" ;" , ";", _ ' şterge spaţiu înainte de punct şi virgulă
" ?" , ".", _ ' şterge spaţiu înainte de semnul întrebării
" !" , "!", _ ' şterge spaţiu înainte de semnul exclamării
" Chr(40)" , "Chr(40)", _ ' şterge spaţiu înainte de paranteză rotundă de deschidere
" Chr(91)" , "Chr(91)", _ ' şterge spaţiu înainte de paranteză dreaptă de deschidere
" Chr(123)" , "Chr(123)", _ ' şterge spaţiu înainte de paranteză acoladă de deschidere
" Chr(171)" , "Chr(171)", _ ' şterge spaţiu înainte de ghilimele franţuzeşti de deschidere
"Chr(41) " , "Chr(41)", _ ' şterge spaţiu după paranteză rotundă de închidere
"Chr(93) " , "Chr(93)", _ ' şterge spaţiu după paranteză dreaptă de închidere
"Chr(125) " , "Chr(125)", _ ' şterge spaţiu după paranteză acoladă de închidere
"Chr(187) " , "Chr(187)", _ ' şterge spaţiu după ghilimele franţuzeşti de închidere
"! …" , "!…", _ ' şterge spaţiu dintre semnul exclamării şi elipsis
"? …" , "?…", _ ' şterge spaţiu dintre semnul întrebării şi elipsis
" " , " ") ' două spaţii consecutive se înlocuiesc cu un singur spaţiu |
Am adăugat apostrof înaintea liniei/liniilor care stabileau marcarea cu fundal color a înlocuirilor, aşa că înlocuirile nu vor fi marcate în text.
Aşa cum am menţionat, în macrou nu se pot explicaţiile precedate de apostrof în dreptul liniei de comandă a unei perechi. Se pare că fiecare linie trebuie să se continue cu grupul de caractere , _ [Virgulă_Underline], ceea ce înseamă "comanda se continuă pe linia următoare", iar ultima linie din listă cu paranteză rotundă închisă ), ceea ce s-ar traduce cu "încheiat lista de înlocuiri".
Ultima înregistrare din a doua listă este o modificare care se repetă, ea ocupă poz3 din prima listă. Am repetat înregistrarea în mod intenţionat, în ideea că după unele corecţii este posibil să mai apară situaţii de două spaţii consecutive.
Am să-l rog pe @atari să explice dacă e mai bine să se lucreze cu coduri Word de genul ^w=spaţiu, ori e suficient să folosem spaţiul propriu-zis necodat.
LE: postarea a fost reeditată Am reeditat macroul introducând după fiecare listă linia InlocuiriMultiple lista:=perechi, cu_meta:=False
Am reeditat explicaţiile la macrou.
_______________________________________
Oameni şi popoare îşi cată libertatea; după ce-o obţin, îşi caută stăpân.
| TORENTE | Tăunul | ROCAMBOLE+ | FLORIS | VRACIU | Victor HUGO | J.F. COOPER | PAPILLON | POLDARK | | Dictionare Lba RO | | Gramatica RO | D. Stănoiu | Zaharia STANCU | H.Y. STAHL | V.CORBUL & E.BURADA | | Ultimul regat | Millennium | Shantaram | Pearl BUCK | Anchee MIN | Amy TAN | C. LÄCKBERG | Ph.GREGORY | | Extraterestrii şi Intraterestrii | RUFOR | Demonul Roşu | Vraja milioanelor | Cărţi audio |
|
|