Opțiuni de manipulare

În macrocomenzi, va trebui adesea să verificați starea opțiunilor din aplicația Word sau dintr-un anumit document. În VBA, multe dintre opțiuni sunt controlate de obiectul Options, care are zeci de proprietăți, dar nu și metode.

Să ne uităm la patru exemple scurte care arată cum să setați opțiunile. Trei dintre ele utilizează obiectul Options și unul utilizează o proprietate a obiectului Document. Pentru a vedea lista completă de proprietăți disponibile pentru obiectul Opțiuni, căutați în MSDN:

https://msdn.microsoft.com/EN-US/library/office/ff822397.aspx

CUm să verificați dacă hyperlink-urile necesită Ctrl+clic

Hyperlink-urile din documentele Word s-au dovedit a fi o binecuvântare mixtă, mai ales că modificările aduse de Microsoft modului în care Word gestionează hyperlink-urile i-au făcut pe utilizatori nesiguri dacă să facă clic sau să facă Ctrl+clic pe hyperlink pentru a le urmări. Aveți posibilitatea să setați proprietatea CtrlClickHyperlinkToOpen a obiectului Opțiuni la True pentru a vă asigura că hyperlink-urile necesită Ctrl+clic:

Options.CtrlClickHyperlinkToOpen = True

Setarea acestei opțiuni la False înseamnă că aveți posibilitatea să declanșați link-urile cu clic pe ele, fără a apăsa și tasta Ctrl.

Dezactivarea Overtype

Pentru a vă asigura că procedurile se comportă conform așteptărilor, poate fi necesar să verificați dacă Word utilizează modul Inserare (Insert), nu modul Overtype. (În modul Inserare, Word inserează caracterele pe care le tastați în punctul de inserare, mișcând la dreapta orice text existent pentru a face loc. În modul Overtype, fiecare caracter pe care îl tastați înlocuiește caracterul din dreapta punctului de inserare.)

Modul Overtype este controlat de proprietatea Overtype a obiectului Options. Când OverType este True, este activat modul Overtype; când OverType este False, este activat modul Inserare. Instrucțiunile de urmărire stochează setarea curentă OverType a utilizatorului într-o variabilă Boolean numită blnOvertypeOn, setați Overtype la False, efectuați acțiunile necesare, apoi restabiliți setarea OverType a utilizatorului:

  Dim blnOvertypeOn As Boolean 
  blnOvertypeOn = Options.Overtype
  Options.Overtype = False 'aici scrieti codul
  Options.Overtype = blnOvertypeOn

Setarea unei căi de fișier implicite

La configurarea Word pe un computer, poate fi necesar să vă asigurați că căile implicite de fișier sunt setate la folderele corecte. Puteți face acest lucru lucrând cu proprietatea DefaultFilePath a obiectului Opțiuni. Sintaxa este următoarea:

expression.DefaultFilePath(Path)

Aici, expression este o expresie necesară care returnează un obiect Options. Adesea, este mai ușor să utilizați obiectul Options în sine.

Path poate fi una constantele enumerate în lista următoare:

De exemplu, următoarele comenzi setează calea la șabloanele de utilizator și calea la șabloanele grup de lucru:

Options.DefaultFilePath(wdUserTemplatesPath) = _  
     "c:\users\richard\appdata\roaming\microsoft\templates"
Options.DefaultFilePath(wdWorkgroupTemplatesPath) = _ 
     "\\server\users\templates"

Dezactivarea Track Changes

Înainte de a executa o procedură care adaugă, șterge sau formatează text, poate fi necesar să dezactivați caracteristica Track Changes, astfel încât modificările efectuate de procedură să nu fie marcate în text. Dacă utilizatorul a avut activată opțiunea Track Changes, ar trebui să o porniți din nou la sfârșitul procedurii, astfel încât modificările făcute de utilizator să fie urmărite din nou. Rețineți că este de obicei o bună practică atunci când modificați opțiunile pentru a stoca mai întâi setarea curentă a utilizatorului într-o variabilă, efectuați comenzile din procedură, apoi restaurați setarea originală a utilizatorului. Următorul exemplu ilustrează această tehnică.

Acest exemplu salvează setarea utilizatorului pentru opțiunea TrackRevisions din obiectul ActiveDocument într-o variabilă de tip Boolean numită blnTrackChangesOn, setează TrackRevisions la False, realizează acțiunile din procedură, apoi restabilește setarea TrackRevisions a utilizatorului:

Dim blnTrackChangesOn As Boolean 
blnTrackChangesOn = ActiveDocument.TrackRevisions 
ActiveDocument.TrackRevisions = False 
' aici urmeaza codul
ActiveDocument.TrackRevisions = blnTrackChangesOn

Accesarea OneNote

Spre deosebire de modul în care se accesează cloud (OneDrive, Dropbox și așa mai departe), lucrul cu OneNote este o altă problemă, deoarece conținutul său este stocat în format XML.

Când scrieți cod pentru a gestiona un document text obișnuit, este destul de simplu din cauza caracteristicilor VBA de manipulare a șirurilor. Chiar și gestionarea unui document Word este destul de simplă, deoarece VBA are multe funcții predefinite care implică Range, Selection și alte obiecte. Word ascunde în mod eficient formatarea sa internă și alte complexități, permițându-vă să manipulați textul pur și simplu ca text.

Cu toate acestea, obținerea de metadate (informații, ar fi numele unei note) poate merge mai greu. Depinde mult de cine a construit XML și cât este de clar și de logic.

Atunci, de să explorăm acest subiect? Deși VBA nu este încorporat în aplicația OneNote, codul VBA din alte aplicații Office 2016 poate manipula direct OneNote. Și, pentru că Microsoft a promovat OneNote de mai mulți ani în încercarea de a-l face mai popular, ca pe un depozit de idei și amintiri, am inclus acest exemplu care demonstrează accesarea lui din alte aplicații Office.

OneNote este util; conține multe caracterisitici și este bine integrat în Windows și în platformele Office.

Versiunile OneNote sunt disponibile pe orice dispozitiv, de la iOS la dispozitivele Android. Deci, dacă ar trebui să aveți vreodată nevoie să știți să contactați OneNote din Word sau din altă aplicație Office, citiți mai departe.

Următorul exemplu preia metadate din aplicația OneNote a utilizatorului. Înainte de a încerca acest cod, alegeți Tools> References din Editor și asigurați-vă că sunt bifate obiectele Microsoft OneNote 15.0 Library și Microsoft XML v6.0 în caseta de dialog References. Implicit, acestea nu sunt bifate (inclusiv în VBA).

1. Sub GetMetaData()
2.
3.  'Daca nu ruleaza, OneNote va fi pornit
4.  Dim ONote As oneNote.Application
5.  Set ONote = New oneNote.Application
6.
7.  Dim strXML As String
8.
9.  ONote.GetHierarchy "", hsNotebooks, strXML, xs2013 'de retinut că se blocheaza daca folositi xs201610.
11.  MsgBox strXML
12. End Sub

Liniile 4 și 5 creează o instanță a OneNote și îi atribuie o variabilă obiect ONote.

Apoi, a fost creată o variabilă de tip String pe linia 7 pentru a stoca metadatele. Linia 9 folosește metoda GetHierarchy pentru a adăuga în strXML metadatele. hsNotebooks reprezintă colecția de însemnări din OneNote. Caseta mesaj afișează rezultatele, ca în figura de mai jos.