|
Microsoft Office Word |
|
|
Word VBA: Putevi produktivnostiNivo:
Koristite li VBA? To nije samo vid automatizacije više uzastopnih koraka koje često ponavljate, kako biste ubrzali neki rutinski posao. To je i programski jezik u kome možete postići mnogo više nego što vam Office programi daju. Mogli biste pomisliti "šta bih više poželeo u programima" i tako se dobrovoljno odreći te mogućnosti, ali jedno pismo sa zanimljivom pričicom i primerenim rešenjem naoko malog problema me je podsetilo na važnu stvar. Elem, računarsku platformu uvek treba da prilagođavamo sebi (ako je to moguće, a nekako uvek jeste), a ne da prilagođavamo sebe platformi po svaku cenu. Suština rešenja koje mi je poslao kolega Branislav Jeremić je baš takva: reč je o pukoj sitnici, ali posledice njene primene su daleko od naivne. Kolega Jeremić piše o svojoj praksi: često je u situaciji da mu treba vertikalni raspored prozora više otvorenih dokumenata u Wordu 2003. Ugrađena komanda Window / Arrange All (Prozor / Rasporedi sve) raspoređuje prozore samo horizontalno, što uopšte nije praktično, posebno kod novijih širokih TFT ekrana. Šta je on uradio: napravio je makro koji raspoređuje prozore dva ili više dokumenata uspravno, deleći njihovu širinu na ravne časti. Zatim je zatečenoj komandi u meniju izmenio ime u Arrange All HOR i pored nje dodao novu prečicu do makroa, imenujući je kao Arrange All VERT; time je obezbedio komandu koju koristi često. Da nije tako postupio, kolega bi svaki put morao da izgubi po desetak sekundi u ručnom raspoređivanju prozora. Takvo ponavljanje izaziva stres koji možda nije primetan, ali svakako utiče na raspoloženje i produktivnost. Evo i pomenutog makroa:
Sub Vertical_arrange()
On Error GoTo errorHandler
Dim i As Integer, BrojDokum As Integer
Dim Prozor As Integer, Sirina As Integer, Visina As Integer
BrojDokum = Windows.Count
' Učitavanje dimenzija
With ActiveWindow
.WindowState = wdWindowStateMaximize
End With
' "- 2" definiše krajnji desni prozor
Sirina = ActiveWindow.Width / BrojDokum - 2
Visina = ActiveWindow.Height - 27
Prozor = 0
For i = 1 To BrojDokum
Windows(i).Activate
With ActiveWindow
.WindowState = wdWindowStateNormal
.Top = 0
.Left = Prozor
.Width = Sirina
.Height = Visina
End With
Prozor = Prozor + Sirina
Next i
Windows(1).Activate
GoTo Kraj
errorHandler:
Select Case (Err)
Case 5868:
ActiveWindow.WindowState = wdWindowStateNormal
Resume
Case 5869:
ActiveWindow.WindowState = wdWindowStateNormal
Resume
Case Else:
MsgBox "Error: " & Err & vbCrLf & "Msg: " & Err.Description
End Select
Kraj:
End Sub
Primećujem još nešto: kolega Jeremić je izveo VBA proceduru po svim pravilima "lepog ponašanja", obazrivo predviđajući da će drugi korisnici nove komande već naći načina da nešto pokvare. Ovo je zaista školski primer dobro napisanog makroa! Ostaje još da vidimo kako je to kolega Jeremić preinačio sadržaj menija; ispratite ove korake, to može biti korisno i za druge prilike. U Wordu 2003 ili starijem je lako, jer je traka komandi otvorena za izmene. Postupićemo po preporuci i izmeniti sadržaj menija Window (Prozor). Desnim klikom bilo gde na traci komandi otvorite kontekstni meni, pa kliknite na dnu na stavku Customize (Prilagodi). Dok je dijalog otvoren, levim klikom otvorite meni Window (Prozor), pa desnim klikom na stavku Arrange All (Rasporedi sve) otvorite njen kontekstni meni. Uočite stavku Name (Ime). Znak ampersend (&) služi kao hotkey; baš zgodno, slova H i V ("horizontalno" i "vertikalno") su slobodna za upotrebu u meniju i to ćemo iskoristiti. Zamenite tekst komande tako da glasi Arrange &HOR (ili Rasporedi &horizontalno. Tim ste preuredili postojeću stavku. Vratite se u dijalog Customize (Prilagođavanje), pa pređite na karticu Commands (Komande). U levom konu sa kategorijama nađite stavku Macros (Makroi), a zatim u desnom nađite stavku koja odgovara makrou Vertical_arrange (ili kako ste već imenovali gorenavedeni makro). To će izgledati, prema šablonu imenovanja Predložak.ImeModula.ImeMakroa, otprilike ovako: Normal.Module1.Vertical_arrange Uhvatite tu stavku mišem, prevucite je na meni Window, ne puštajte taster miša dok se meni ne otvori, pa najzad smestite stavku na novo mesto. Kad završite to, otvorite desnim klikom kontekstni meni te stavke, pa zamenite ime na Arrange &VERT ili Rasporedi &vertikalno. Ako želite, u režimu uređenja možete i da preuređujete ikone uz komande menija. To ćete izvesti komandama koje se nalaze u kontekstnom meniju; prepustiću vam da se sami poigrate time, jer je to daleko od bitnog. Uglavnom, sada je način slaganja prozora u Wordu do verzije 2003 rešen. Word 2007 nam zadaje muku, jer ribon nije programabilan (zapravo, jeste, ali ovde govorimo o punoj udobnosti). Zato, okanite se ćorava posla i iskoristite jedini raspoloživi deo komandnog prostora koji je izmenljiv: to je priručna traka (QAT). Zahvat je jednostavan, jednom kad ste smestili makro u glavni predložak Normal.dotm: otvorite dijalog Office > Word Options > Customize (Office > Word opcije > Prilagođavanje). U padajućoj listi iznad levog okna odaberite stavku Macros (Makroi), pronađite ime makroa na način koji sam objasnio gore i prebacite ga u desno okno. Po želji, promenite položaj komande u priručnoj traci, a svakako kliknite i na dugme Modify (Izmeni), pa bar promenite naslov nove komande, ako ne i njenu ikonu. Podsećam vas da konačna izvedba sadržaja priručne trake dodaje generičke prečice Alt+broj (na alfanumeričkom delu tastature), pa možete proveriti koji broj je dodeljen vašoj novoj komandi: pritisnite i pustite levi Alt i videćete prikladnu ekransku napomenu na mestu komande.
|
|
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. |