Notă – nu îmi asum eventualele probleme care pot apărea în urma folosirii unui macro!
În general, mă feresc de asemenea cuvinte – “trebuie” / “e obligatoriu” / “neapărat-neapărat”. În cazul de față, însă, discut despre un macro care e, nici mai mult nici mai puțin, decât obligatoriu.
Anume, în Microsoft Word, înlocuirea ” ” (spațiu spațiu) cu ” ” (spațiu).
Motivația?
- Este o eroare relativ dificil de depistat, e ușor să sari peste un cuvânt care e separat de dublu spațiu, față de situația de a nu observa un cuvânt care e tastat greșit.
- În Microsoft Word, cu setările implicite, nu ești notificat – “hei, vezi că ai o eroare – ai scris cu dublu spațiu”. Poți trăi cu eroarea foarte bine.
- La documente foarte lungi, eroarea e inevitabilă. Dacă scrii o carte de 300 de pagini, vei avea și cuvinte separate prin dublu spațiu.
- Cum ar fi să poți să scrii documentul, apeși un buton, și să se rezolve totul, în mod automat?
Cum se face?
- Soluția banală e să înregistrezi (cu record) un macro și să atașezi acel macro, pentru acces facil, pe toolbar. Apoi, de fiecare dată când termini de scris un document, lansezi macro-ul și funcția Search & Replace se va lansa automat. Pac! Apeși un buton și, în tot documentul, dublu spațiu va fi înlocuit cu spațiu.
- Pentru a înregistra un macro, în Microsoft Word 2007/2010/2013, soluția e să apeși:
În variantele anterioare de Word, Tools => Macro => Record new macro. - Apoi, e cazul să dai un nume macro-ului și atașezi acel macro pe toolbar, ca să îl accesezi ușor ulterior. Așa se face în variantele mai noi de Word:
, iar pentru variantele anterioare soluția e similară. Dacă nu vă descurcați, creați macro-ul, apoi click dreapta pe toolbar, și customize și faceți să apară în toolbar macro-ul creat. Detalii. - Acum macroul se înregistrează. Ce să facă însă? Eu i-am dat un search & replace, în tot documentul, după ” ” (dublu spațiu) cu ” “. Ca mai jos:
Am dat apoi, din același meniu unde am lansat înregistrarea macro-ului, să se oprească înregistrarea (stop recording). - Rezultatul final?
Pot apăsa butonul de pe toolbar și, foarte simplu, se face înlocuirea automată. - Eu fac back-up al macro-urilor mele, din când în când. Merg la Organizer… și copiez macro-urile într-un document word, salvez documentul, iar după o reinstalare de Windows, tot ce am de făcut e să deschid documentul și la Organizer să copiez dinspre document înspre fișierul Normal.dot.
Macro-uri de genul acesta pot fi următoarele:
- Macro care să te “scape” de diacritice. Ai un text cu diacritice, faci un macro care înlocuiește ș cu s, Ș cu s (atenție! de bifat “Match Case”). Detalii.
- Un macro care să înlocuiască ” ,” (spațiu înainte de virgulă) cu “,” (fără acel spațiu). Sau spațiu înainte de punct (” .” cu “.”). Iarăși, poți avea un macro care să înlocuiască linia de despărțire cuvinte “-” cu linie mare “–”. Din păcate, exemplele de la aceste puncte pot duce la erori. Poate vreau să scriu un număr de forma .31 (fără 0 în față). Sau poate am lăsat spațiu înainte de virgulă după emoticon “:) ,”, în mod intenționat. Sau poate eu înlocuiesc liniile – cu linii mari –, dar uneori acele linii nu sunt separate prin spațiu: “afară – și aici îmi era frică -, nu am mai mers” – acest text va da eroare la a doua “-“, pentru că nu e ” – “, ci e ” -,”. Și poate fi problematic să ai un macro care să funcționeze “aproape” constant. Nu vrei asta. :) La fel, ghilimelele. Sunt de mai multe tipuri – “citat” / „citat” / «citat» / “citat”. Nu poți deloc ușor să faci un macro care să se descurce cu ghilimele în cadrul altor ghilimele, care să știe să lucreze și cu ghilmele care nu au spații (“afară”/”în interior”). E foarte dificil. În cazul ăsta, un macro e dificil de creat.
- În schimb, soluția mea, cu înlocuire dublu spațiu cu spațiu ar trebui să fie, more or less, fără gafe. De unde și termenul de “macro obligatoriu”.
Sau poti invata putin VBA ca sa scrii tu codul pentru macro, iar cand il scrii excluzi cazurile in care n-ai vrea sa faca inlocuirea. :)
Mersi de idee.
Ideea e că apar excepții și excepții la excepții. De exemplu:
Astăzi – într-o “dimineață”, poate – am plecat cu gândul meu (“uitat, oare? «recunosc» că greșesc”)
poate fi scris, în mod greșit:
Astăzi – într-o “dimineață”, poate – am plecat cu gândul meu (uitat, oare? «recunosc» că greșesc”)
Sau:
Nu îmi plac “ghilmelele” – “””.
E foarte greu să faci un macro care să se gândească la toate situațiile, posibile și imposibile. În exemplul meu, odată cineva a uitat să pună ghilimele, iar în al doilea caz “”” e ceva corect, dar greu de programat ca exemplu.