|
Microsoft Office - Razno |
|
|
Slike na dugmadimaNivo:
Ovog puta govorimo o alternativnim metodama za pozivanje makroa koji čine glavni gradivni element vaše Office aplikacije. Dajemo vam i VBA predložak za ispitivanje raspoloživih dugmadi za traku alatki. Ako pravite neki sistem makroa koji će krajnji korisnici upotrebiti kao rešenje za automatizaciju
u dokumentu, potrebno je da nađete optimalni način da privedete komande korisniku. Svakako, možete
obučiti korisnika da za pokretanje makroa upotrebi standardni dijalog za pokretanje makroa (Alt+F8).
Ali, ako imate mnogo procedura, među kojima su i one pomoćne, koje nije primereno pokretati
nezavisno, na pragu ste problema, jer sigurno dobro znate kako glasi prvi Marfijev zakon. Istina,
postoji način da prikrijete makroe za koje ne želite da ih korisnik vidi (pogledajte prilog o tome Jedna od prikladnih ideja je da obezbedite traku sa alatkama (toolbar) koju ćete inicijalizovati u toku pokretanja dokumenta. Čak je zgodno da te trake namerno izvedete kao privremene! Tako biste, na primer, sprečili "zagađivanje" glavnog predloška u Wordu ili biste u bilo kom Office programu osigurali da se traka sigurno pojavi svaki put kada dokument ili predložak bude otvoren. Primer gradnje jedne proste trake sa alatkama vidite u sledećem listingu: Sub MojaTraka() Set traka = CommandBars.Add(Name:="Moja Traka", _ Position:=msoBarFloating, Temporary:=True) ' ako pravite stalnu traku, izbacite ' klauzulu Temporary:=True traka.Visible = True Set dugme = traka.Controls.Add(Type:=msoControlButton) With dugme .FaceId = 59 .TooltipText = "Hello, World!" .Caption = "Pozdrav" .Style = msoButtonIconAndCaption '.OnAction = "Proc_Hello" End With Set dugme = traka.Controls.Add(Type:=msoControlButton) With dugme .FaceId = 712 .TooltipText = "Naučite 99 trikova u VBA" .Caption = "99 trikova u VBA" .Style = msoButtonIcon '.OnAction = "Proc_99" End With Set dugme = traka.Controls.Add(Type:=msoControlButton) With dugme .FaceId = 106 .TooltipText = "Zatvaranje ove trake" .Caption = "Zatvori" .Style = msoButtonCaption '.OnAction = "Proc_Zatvori" End With End Sub Uočite da postoje razlike između tri komande, zavisno od odabira pojavljivanja dugmeta i ispisa. Verovatno već znate da to možete preurediti standardnim alatkama za preuređenje sadržaja trake komandi, ali ostavimo to za drugi put. Uočite komentarisane redove u klauzuli OnAction: pod navodnicima su imena (ovde zamišljenih) VBA procedura koje klik na dugme poziva na izvršenje. Dajem vam i pomoć u uspostavljanu kontrole nad slikama na dugmetu. Ponuda tih sličica je ogromna, ima ih nekoliko hiljada! Napravio sam "VBA igračku" da bih utvrdio kako stoje stvari, pa sam saznao da se identifikatori sličica kreću u rasponu 1-10030. U prilogu uočite makro TestBarDugmad, koji će u bilo kom Office programu napraviti 21 traku sa po 500 dugmadi.
Sub TestBarDugmad()
' postavljanje traka sa
' uzorcima po 500 dugmadi
On Error Resume Next
For kol = 1 To 21
donji = 500 * (kol - 1) + 1: gornji = 500 * kol
ime = "Grupa " & kol & ": " & donji & "-" & gornji
Set traka = CommandBars.Add(Name:=ime, _
Position:=msoBarFloating, Temporary:=True)
traka.Visible = True
For i = donji To gornji
Set dugme = traka.Controls.Add(Type:=msoControlButton)
dugme.FaceId = i
dugme.TooltipText = i
Next
DoEvents
Next
MsgBox "Gotovo"
End Sub
Traka će biti vrlo široka, pa povucite svaku za donju ivicu dok ne dobijete pravougaonik koji ceo staje na deo ekrana. Predlažem da za ovaj test upotrebite Excel ili PowerPoint, jer se makroi podrazumevano čuvaju u matičnom dokumentu, a uklanjanje ovih traka (makro DugmadKill_XL_PPT) je jednostavnije nego u Wordu (DugmadKill_Word). No, svejedno: privremene trake su žive samo do zatvaranja programa.
Sub DugmadKill_Word()
' brisanje traka sa uzorcima u Wordu
For Each traka In CommandBars
If Left(traka.Name, 6) = "Grupa " Then
Application.OrganizerDelete _
Source:=NormalTemplate.FullName, _
Name:=traka.Name, _
Object:=wdOrganizerObjectCommandBars
End If
Next traka
End Sub
Sub DugmadKill_XL_PPT()
' brisanje traka sa uzorcima
' u Excelu i PowerPointu
For Each traka In Application.CommandBars
If Not traka.BuiltIn Then traka.Delete
Next
End Sub
|
|
Vrh stranice Prethodna stranica Naslovna strana Mapa sajta Pretraga |
| AFORIZAM ZA DANAS | OVIH DANA SLUŠAMO... |
| Copyright © Praktikum na Webu, 2000-2011; Valinor Design; sva prava pridržana. |