Word – kako “prisiliti” dokument/obrazec, da se odpre v delovnem načinu
Pozdravljeni!
Naredil sem obrazec (anketo) v Wordu s pomočjo orodjarne kontrolnikov (tekstovna, radio… polja), zanima pa me, kako bi “prisilil” dokument, da se mi odpre v delovnem in ne načrtovalnem načinu. Čeprav pred shranjevanjem zaprem načrtovalni način in/ali dokument zaklenem pred urejanjem (z izjemo teh polj), se vedno odpre v načrtovalnem načinu, jaz pa bi v delovnem, saj bo šel v delo in uporabnikom ne bi razlagal, da najprej preklopijo način pred izpolnitvijo.
Ne dela niti
Private Sub Document_Open()
ActiveDocument.ToggleFormsDesign
End Sub
na kodi dokumenta.
Ima kdo kakšno idejo (pa pustimo, zakaj obrazec ni narejen v InfoPathu itd…), kako to narediti ali pretvoriti obrazec v drugi format, kjer bi to delalo? Hvala!
Toggles form design mode on or off. When Word is in form design mode, the Control Toolbox toolbar is displayed. You can use this toolbar to insert ActiveX controls such as command buttons, scroll bars, and option buttons. In form design mode, event procedures don’t run, and when you click an embedded control, the control’s sizing handles appear.
expression.ToggleFormsDesign
expression Required. An expression that returns a Document object.
Example
This example switches to form design mode if the Control Toolbox toolbar isn’t currently displayed.
If CommandBars(“Control Toolbox”).Visible = False Then
ActiveDocument.ToggleFormsDesign
End If
ali:
ActiveDocument.ToggleFormsDesign
or
CommandBars(32).Controls(1).Execute
To return to normal mode go
CommandBars(32).Controls(1).Reset
ALi
To switch into Designmode use either:
ActiveDocument.ToggleFormsDesign
or
CommandBars(32).Controls(1).Execute
To return to normal mode go
CommandBars(32).Controls(1).Reset
Dovolj…
lp
Hvala klemenxx za informacije, zanima me pa še en detajl.
Namreč to kodo
If CommandBars(“Control Toolbox”).Visible = False Then
ActiveDocument.ToggleFormsDesign
End If
in
ActiveDocument.ToggleFormsDesign
sem že prej vključeval na dokument na “Private Sub Document_Open()” event, pa se na njem ni izvedla ob odpiranju obrazca. Če kodo dam v makro, normalno prime in preklapljam med načini načrtovanja, medtem ko na eventu ne prime. Ali si narobe razlagam funkcionalnost tega eventa (da pač vedno, ko se dokument odpre, se koda v njem izvede) ali je kaj drugega narobe?
Reset in Execute metod pa nisem poznal, live and learn 🙂
Ta event je odvisen od security nastavitev za makroje.
Če imaš security na Low, potem se makro vedno izvede, ko odpreš dokument, če pa na High, pa se ne bo izvedel.
Sicer pa praviš, da drugače makroje poganjaš normalno, tako da to verjetno ni to.
Še ena stvar, Document_Open() event ni nujno da se vedno zgodi, ne zgodi se npr pri predlogi oz. dokumentu osnovanemu na templatu.
Poskusi z AutoOpen() ali še bolje AutoExec(), ki deluje (skoraj) vedno.
Stopnjo zaščite pred makri imam nastavljeno na “Visoka”. Makre poganjam normalno, to je res, ampak napisal sem jih sam, jih bodo lahko tudi drugi uporabniki?
AutoOpen sem se pa izognil, ker je to makro globalnega tipa (tj. moram ga shranit v normal.dot template, česar pa ne morem zaradi več uporabnikov), zato sem hotel ohraniti lokalnost in delati samo z eventi samega dokumenta/obrazca.
Hvala za predlog!
Forum je zaprt za komentiranje.