Pentru a vă face o idee despre cum puteți modifica Panglica, să presupunem că doriți să eliminați grupul Clipboard din fila Pornire (Home) de pe panglica din Word. Acest grup face lucruri pe care nu trebuie să le activați prin Panglică, cum ar fi tăierea, copierea, lipirea și format painting. Puteți decide dacă trebuie afișate aceste opțiuni, deoarece nu faceți clic pe ele prin intermediul mouse-ului. În schimb, utilizați comenzile rapide de la tastatură, ar fi Ctrl+C pentru copiere, Ctrl+V pentru lipire și așa mai departe. Format painting poate fi selectată printr-un meniu contextual care apare atunci când este selectat textul, sau se pot folosi combinații de taste Ctrl+Shift+C pentru copiere formatare și Ctrl+Shift+V pentru lipire formatare.
Astfel, grupul Clipboard devine inutil, doar se pierde spațiu valoros pe Panglică.
Pentru a ascunde grupul Clipboard din Panglică, urmați acești pași:
1. Mai întâi, descărcați un utilitar gratuit care lucrează mai ușor cu Panglica. Accesați
https://www.rondebruin.nl/win/winfiles/OfficeCustomUIEditorSetup.zip
și descărcați și instalați arhiva cu utilitarul Office Custom UI Editor. Extrageți conținutul fișierului zip și veți avea un fișier de instalare (.msi). Doar faceți dublu clic pe el pentru a instala Custom UI Editor.
2. Porniți Word.
3. Apăsați tastele Alt, F, N, (sau clic pe fila File, apoi pe opțiunea New). Apoi click pe șablonul pentru un document gol.
4. Apăsați Alt, F, A și salvați documentul ca RibbonMod.docm pe Desktop (sau în altă locație, de exemplu C:\temp pe care o puteți găsi ușor). Când se deschide caseta de dialog Save As, asigurați-vă că sub câmpul nume fișier, la tipul câmpului Save As scrie Word Macro- Enabled document (*.docm).
5. Apăsați tastele Alt, F, C pentru a închide documentul. Închiderea documentului este necesară deoarece dacă este încă deschis atunci când încercați să stocați codul XML în acesta (alegând File > Save din Editor particularizat pentru Microsoft Office), veți primi un mesaj de eroare.
DE CE AR TREBUI SĂ UTILIZAȚI TIPURILE DE FIȘIERE ACTIVATE PENTRU MACROCOMENZI
Rețineți că aveți posibilitatea să salvați documentul ca tip de fișier .docx implicit, dar în acest capitol veți utiliza întotdeauna tipul .docm activat pentru macrocomenzi (și celelalte tipuri cu “m“, cum ar fi .xlsm pentru fișiere Excel activate de macrocomandă și .pptm pentru PowerPoint). Aceste tipuri de fișiere pot include macrocomenzi și, în unele dintre exemplele din acest capitol, va trebui să scrieți proceduri pentru a gestiona evenimente - declanșate atunci când utilizatorul face clic pe un control pe care l-ați adăugat la Panglică.
6. Executați aplicația Custom UI Editor for Microsoft Office.
7. Alegeți File > Open.
8. Navigați până la fișierul RibbonMod.docm pe care l-ați salvat la pasul 4, și deschideți-l.
9. În panoul din dreapta a Custom UI Editor, tastați următorul cod XML:
<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui">
<ribbon>
<tabs>
<tab idMso="TabHome">
<group idMso="GroupEditing" visible="false" />
</tab>
</tabs>
</ribbon>
</customUI>
Identificatorii (idMso), imaginile (imageMso) și alte atribute din codul XML al Panglicii pot avea sufixul Mso. Mso este prescurtarea de la Microsoft Office și, atunci când este adăugată la un atribut, înseamnă că este încorporată (built-in). Deci, un tab cu un atribut idMso este una dintre filele care apar pe Panglică în mod implicit. Un tab cu un atribut id simplu este o filă nouă pe care ați adăugat-o la Panglică. De asemenea, un imageMso este unul dintre seturile de pictograme încorporate în Office 2016, dar image (fără Mso) este o pictogramă creată prin importul unui fișier grafic (a se vedea "Crearea propriilor pictograme" mai târziu în această secțiune).
Feriți-vă de caractere speciale
XML se va sufoca cu caractere speciale- se așteaptă text simplu fără ghilimele (numite citate inteligente) sau alte formate de lux. Dacă puteți folosi Notepad pentru a putea lipi codul, copiați codul din Notepad, și lipiți-l în VBA Editor sau Custom UI Editor. Când textul a fost copiat din Notepad, dispar toate caracterele speciale. Ghilimelele ondulate (care sunt două caractere distincte, pentru deschiderea și închiderea citatului) se transformă într-un singur caracter, cu nota de referință. Acest lucru este o modalitate destul de bună de a spăla textul.
Deci, cum se poate scăpa de anumite caractere, cum ar fi ghilimelele înclinate (“ și ”) cu care XML (și VBA Editor) nu pot lucra, înlocuindu-le cu ghilimele drepte(")? Sunt 3 metode, dar a treia este cea mai bună:
1. Sub StraightenQuotes()
2. ' Inlocuieste ghilimelele inclinate cu ghilimele drepte
3.
4. On Error GoTo Problem
5. Dim aDO As DataObject
6. Set aDO = New DataObject
7. aDO.GetFromClipboard
8. aDO.GetText
9.
10. Dim bQuotesOn As Boolean
11. bQuotesOn = Options.AutoFormatAsYouTypeReplaceQuotes
12.
13. Options.AutoFormatAsYouTypeReplaceQuotes = False
14.
15. Documents.Add Template:="Normal", NewTemplate:=False, DocumentType:=0
16.
17. Selection.Paste
18.
19. Selection.WholeStory
20.
21. Selection.Find.ClearFormatting
22. Selection.Find.Replacement.ClearFormatting
23.
24. With Selection.Find
25. .Text = ChrW(8221)
26. .Replacement.Text = """"
27. .Wrap = wdFindStop
28. .Forward = True
29. End With
30. Selection.Find.Execute Replace:=wdReplaceAll
31.
32. Selection.Find.ClearFormatting
33. Selection.Find.Replacement.ClearFormatting
34.
35. With Selection.Find
36. .Text = ChrW(8220)
37. .Replacement.Text = """"
38. .Wrap = wdFindStop
39. .Forward = True
40. End With
41. Selection.Find.Execute Replace:=wdReplaceAll
42.
43. Options.AutoFormatAsYouTypeReplaceQuotes = bQuotesOn
44.
45. Exit Sub
46.
47. Problem:
48. MsgBox "A aparut o problemă. Asigurați-vă că ați copiat un text în Clipboard înainte de a executa această macrocomandă."
49.
50. End Sub
Pentru a testa acest lucru, copiați doar un text care conține unele dintre aceste ghilimele înclinate nedorite în Clipboard-ul Windows (selectați textul, apoi apăsați Ctrl+C). Apoi executați macrocomanda. Iată ce face codul:
10. În Custom UI Editor, clic pe pictograma cu marcajul roșu de selectare.
Acest instrument validează codul XML (o caracteristică la îndemână).
Dacă nu vedeți mesajul "Custom UI XML is well formed," ați făcut o greșeală de scriere în codul XML sau ați inclus caractere speciale greșite. Reintroduceți-l (sau mai bine, copiați și lipiți-l de pe pagina web).
Dacă vedeți un mesaj de eroare care să ateste " "" is an unexpected token...," trebuie să modificați ghilimelele din codul XML pentru a le face drepte, nu înclinate - "smart", așa cum este descris în secțiunea intitulată FERIȚI-VĂ DE CARACTERE SPECIALE.
Trebuie să validați întotdeauna codul XML, deoarece dacă există o eroare de vreun fel, particularizarea Panglicii pur și simplu nu se va întâmpla. Nu va fi afișat niciun mesaj de eroare sau alt avertisment la executarea particularizării. Pur și simplu nu va funcționa. (În general, browserele și alte aplicații care folosesc XML, nu afișează mesaje de eroare dacă nu pot analiza (înțelege) XML. Dar nici nu afișează informațiile din XML.)
11. În Custom UI Editor, alegeți File > Save (care salvează documentul Word cu modificările aduse Panglicii), apoi selectați File > Exit pentru a închide UI Editor.
12. Acum, pentru a vedea efectul, deschideți documentul RibbonMod făcând clic pe fila File, apoi pe Open în Word. În lista de documente recente, alegeți RibbonMod.docm (sau faceți dublu clic pe acel nume de fișier în Explorer).
13. Dacă ați introdus codul XML corect, veți vedea o panglică ca cea din partea de jos a figurii următoare.
Liniile cheie din codul XML sunt acestea:
<tab idMso="TabHome">
<group idMso="GroupEditing" visible="false" />
Linia de cod care începe cu <tab specifică fila din Panglică pe care doriți să o modificați. În acest caz, este fila Home. Elementul de grup specifică grupul din fila pe care o vizați. În acest caz, este grupul Clipboard. În cele din urmă, codul specifică faptul că atributul vizibil al grupului Clipboard trebuie setat la False (Mai jos sunt descrise elementele și atributele XML.)
Decideți ce să includeți pe panglică
Programarea practică a panglicii poate necesita un pic de planificare. Când modificați Panglica, veți dori să includeți utilitare sau caracteristici pe care le utilizați frecvent și, probabil, să le ascundeți pe cele de care nu veți mai avea nevoie.
Iată un sfat util: planificarea informațiilor de pe Panglică este importantă. Observați că atunci când ați eliminat grupul Clipboard, Panglica a extins automat opțiunile vizibile pentru grupul Stiluri sau a eliberat în alt mod spațiu suplimentar. Deci, dacă doriți să adăugați unele opțiuni noi sau un nou grup (așa este descris mai târziu în acest capitol), puteți ascunde un grup de care nu aveți nevoie.
De asemenea, aplicațiile Office sunt software-ul matur și de acum conțin un număr destul de mare de caracteristici. Microsoft a trebuit să lase multe instrumente în afara Panglicii și care pot fi accesate cu clic pe pictograma săgeată mică care se află în partea din dreapta jos a multor grupuri panglică.
Dar este puțin probabil ca opțiunile Microsoft cu privire la ceea ce afișează sau ascunde să se potrivească complet preferințelor dvs. Pentru a vedea dacă lipsește o caracteristică din Panglica implicită Word pe care doriți să o adăugați, faceți clic cu butonul din dreapta pe Panglică și alegeți Particularizare panglică. Se deschide caseta de dialog Opțiuni Word. În lista verticală Choose Commands From, selectați Commands Not In The Ribbon. Veți vedea lista cu comenzile care nu se află pe Panglică.
Avertizare
Există o problemă majoră de care trebuie să știți atunci când lucrați cu codul XML. La proiectarea XML, s-a decis ca acest nou limbaj să fie sensibil la litere mari și mici. Această decizie a cauzat nenumărate probleme pentru programatori de-a lungul anilor. Este ușor de a genera bug-uri în limbajele care sunt sensibile la litere mari și mici. De exemplu, AceastaVariabila nu este la fel ca Aceastavariabila, chiar dacă acestea arată aproximativ la fel. În prima situație, litera V este majusculă, ceea ce înseamnă că cele două exemple se referă la două variabile complet diferite (chiar dacă, desigur, programatorul a intenționat să genereze o singură variabilă, dar accidental a tasta greșit). Și din moment ce cele două versiuni arată aproximativ la fel, poate fi dificil de a localiza și repara acest bug. Codul XML nu va funcționa dacă nu potriviți cu exactitate literele mari și mici. Validarea codului XML (așa am făcut mai devreme cu Custom UI Editor) poate semnala unele greșeli de scriere, dar nu pe toate.
Din fericire, VBA nu este sensibil la litere mari și mici, astfel încât nu trebuie să vă faceți griji cu privire la acest tip de eroare în codul VBA. Dar dacă primiți o eroare atunci când încercați să modificați Panglica utilizând XML, asigurați-vă că nu există o nepotrivire de caz undeva în tot acel cod. O regulă bună este de a utiliza pur și simplu literele mici atunci când scris codul XML. Dacă creați nume fără nicio majusculă și respectați peste tot această practică, veți evita depanarea.
Consultați secțiunea de la sfârșitul acestei secțiuni intitulată "Ce să căutați dacă lucrurile merg prost" pentru alte posibile probleme atunci când lucrați cu Panglica și XML.
Terminologie XML
Pentru a înțelege descrierile exemplelor de cod XML din acest capitol, trebuie să știți doar un pic mai multe despre XML.
În XML, ordinea elementelor contează. XML este ierarhic (cunoscut și ca imbricat sau arborescent), ceea ce înseamnă că trebuie să puneți elemente unul în interiorul celuilalt în ordinea corectă, ca și în cazul unui set de păpuși rusești.
Atunci când lucrați cu Panglica Microsoft, ordinea etichetelor elementului este Ribbon, tabs, tab, group, button (sau alt control), după cum puteți vedea în acest cod:
<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui">
<ribbon>
<tabs>
<tab idMso="TabView">
<group id="CustomViewsGroup" label="Next Window" insertAfterMso="GroupWindow">
<labelControl id="null"/>
<button idMso="WindowNext"/>
</group>
</tab>
</tabs>
</ribbon>
</customUI>
Dacă încălcați această structură de imbricare - punând o etichetă group în afara unei etichete tag, de exemplu, veți primi un mesaj de eroare ("The name in the end tag must match the name in the start tag "):
<button idMso="WindowNext"/>
</tab>
</group>
Sau, dacă omiteți una dintre etichetele de închidere (scrisă cu />), veți primi același mesaj de eroare (aici lipsește eticheta de închidere </tab>):
</group>
</tabs>
Utilizarea pictogramelor încorporate
"Galeriile" de imagini imageMso pot fi descărcate de pe această pagină web:
www.microsoft.com/downloads/details.aspx?FamilyID=2D3A18A2-2E75-4E43-8579-D543C19
D0EED&displaylang=e&displaylang=en?
Încărcați acest fișier .docx în Word. Alegeți Enable Editing dacă este cazul. Apoi veți vedea un mesaj misterios scris cu litere îngroșate: "Images are in the ImageMso 0 and ImageMso 1 tabs in the Backstage."
După ce faceți clic pe fila File, veți vedea două elemente noi listate în partea stângă sub Opțiuni: ImageMso 0 și ImageMso 1. Faceți clic pe acestea pentru a vedea o listă completă de pictograme și numele pe care le puteți utiliza pentru a face referire la ele în codul XML, astfel: imageMso="diamond".