|
Microsoft Office Word |
|
|
Informacija o prvom čuvanjuNivo:
Nedavno me zove kolega telefonom i pita me: "imaš li ambulantno rešenje da sačuvam zapis o prvom čuvanju Word dokumenta?". Kolega je definisao namenski predložak za službeni dokument, a imao je problema sa disciplinom korisnika koji nisu uredno održavali tačan datum prvog čuvanja dokumenta. Naime, s obzirom na to da je reč o dokumentima koji se povremeno dopunjuju sadržajem, neki korisnici su razumeli da bi trebalo svaki put da preprave datum (iako oznaka jasno glasi "Datum prvog čuvanja"). Kolegi je palo na pamet da, kad već raspolaže namenskim predloškom, u njemu definiše polje koje beleži čin snimanja dokumenta u DOC datoteku. Međutim, rešenje koje je pronašao nije bilo od pomoći: polje je prepravljalo podatak svaki put kada bi dokument bio sačuvan, a to nije bilo traženo. Rešenje je moguće, a tim ga je pre lakše izvesti baš zato što se dokument formira iz namenskog
predloška. Štaviše, dosta vremena nakon što sam preneo kolegi "ambulantno" rešenje,
pripremajući ovaj prilog, shvatio sam da bih ovo umeo da rešim na najmanje četiri načina (mada je za
diskusiju da li je svaki od njih celishodan). Rešenje koje je zaista ambulantno se zasniva na ručnoj
manipulaciji nad poljem koje je kolega definisao. Postoji grupa polja DOCPROPERTY: ako otvorite dijalog za umetanje polja (Insert /
Field), videćete da uz ključni naziv tog polja uobičajeno dolazi oko 25 mogućih opisa koji
daju koristan podatak. Konkretno, potrebno polje koje čuva trenutak snimanja glasi { DOCPROPERTY LastSavedTime }. Uzgred, polje će ispisati i datum i vreme
čuvanja; ako vam je potrebno da zapišete samo datum, u prethodnom prilogu Problem sa ovim rešenjem je u tome što ono automatski beleži svako čuvanje dokumenta; naravno, ukoliko je dokument i dalje otvoren, tu informaciju ćete dobiti tek nakon osvežavanja polja (uobičajeni postupak je par prečica Ctrl+A i F9). Potreban je način da se polje nekako fiksira i učini nepromenljivim. Prvi impuls je zaključavanje polja: ako nad poljem primenite prečicu Ctrl+F11, ono će postati zaključano i neće se više osvežavati, dok ga opet ne otključate prečicom Ctrl+Shift+F11. Međutim, ovo rešenje sadrži očiglednu slabost: nehotično otključavanje polja bi dovelo do pometnje, jer polje bi očigledno nastavilo da radi svoj posao. Drugo, takođe ambulantno rešenje jeste da se polje pretvori u običan tekst: kada nad poljem pritisnete prečicu Ctrl+Shift+F9, interpretirani sadržaj postaje konstanta, tj. prosti tekst, kao da ste ga sami ukucali. Dabome, problem sa oba rešenja je u tome što su manuelni, a koren celog problema leži u nedisciplini korisnika, pa je potreban nekakav oblik automatizacije. Optimalno rešenje se nalazi u VBA makrou rezervisanog imena koji treba postaviti u namenski predložak; modifikacija podrazumeva potpuno drugi pristup koji je jednostavniji od primene polja. Otvorite namenski predložak: kada izaberete tip *.dot u padajućoj listi tipova u dijalog uza otvaranje dokumenta, Word će vas prebaciti direktno na lokaciju predložaka. Izaberite ime predloška i otvorite ga, a zatim na mesto na kome želite da se nađe datum prvog čuvanja ubacite obeleživač (bookmark) po imenu PrvoCuvanje; dijalog za umetanje obeleživača pozovite iz menija Insert ili prečicom Ctrl+Shift+F5. Otvorite VBE (Alt+F11), pa u oknu Project otvorite granu Project (Ime predloška), a zatim u njoj dvaput kliknite na podgranu Microsoft Word Object / This Document. Tako ćete otvoriti modul tog objekta: u njega prepišite sledeći makro: Private Sub Document_New() On Error Resume Next Selection.GoTo _ What:=wdGoToBookmark, _ Name:="PrvoCuvanje" Selection.TypeText Text:=Date End Sub Dejstvo makroa je jednostavno: prilikom otvaranja novog dokumenta zasnovanog na namenskom predlošku, na mestu obeleživača biće upisan trenutni datum, baš kao da je upisano ukucavanjem. U slučaju da želite da bude upisano i tačno vreme, umesto dela Text:=Date napišite Text:=Now. Doduše, postojaće izvesna dilatacija: ovaj makro beleži čas otvaranja, a ne čas snimanja dokumenta; međutim, to je dovoljno mala greška. Najtačnije rešenje svakako postoji, ali postoje razlozi zbog kojih je lakše automatizovati dokument pri otvaranju nego pri zatvaranju, ali sada nije prilika da se upuštamo u tu raspravu; recimo da smo "trgovali" prikazanim rešenjem zarad jednostavnosti. Jedna od posledica rada makroa je i ta da će obeleživač biti izbrisan; međutim, on svakako više nije potreban, pa usput ne morate više da brinete o njemu.
|
|
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. |