2010-07-26 9 views
5

Mam makro, które tworzy nowy dokument na podstawie szablonu przechowywanego w udziale sieciowym. To makro jest przechowywane w folderze Word \ STARTUP każdego użytkownika jako plik "macros.dotm" i jest wykonywane przez przycisk dodany do paska narzędzi.Dokumenty.Dodaj wyniki w szablonie zablokowanym

Plik szablonu zostaje zablokowany natychmiast po wykonaniu kodu makr i pozostaje zablokowany, dopóki dokument pochodny jest nadal otwarty przez innego użytkownika.

Nie ma żadnego wpływu na ich zdolność do otwierania nowych dokumentów na podstawie makra, ale jeśli chcę edytować szablon, muszę poprosić o zamknięcie programu Word (i mam nadzieję, że nikt inny w nim nie wejdzie).

kod makro:

Documents.Add Template:="F:\templates\letterhead.dotm", NewTemplate:=False, DocumentType:=0` 

Odpowiedz

2

Problem polega na tym, że szablon znajduje się na dysku sieciowym - jest to dość powszechny problem. Jednym ze sposobów obejścia tego problemu jest najpierw skopiowanie szablonu wywołania na ten szablon lokalnie, a następnie utworzenie nowego dokumentu na podstawie tego (a następnie skasowanie szablonu po zakończeniu).

+0

Jeśli szablon zapewnia dostosowywanie kodu lub interfejsu użytkownika do utworzonych z niego dokumentów, pomijam usuwanie i zastępuję kopię lokalną nową kopią ze stacji sieciowej, gdy jest to potrzebne, gdy użytkownik ponownie tworzy dokument dla szablonu. Zwróć uwagę na sytuację, w której użytkownik ma już dokument utworzony z szablonu i spróbuje utworzyć nowy. – robartsd

3

Jednym ze sposobów obejścia tego problemu jest odłączenie dokumentu z szablonu po to jest generowany:

Dim doc As Document 
Set doc = Documents.Add(Template:="F:\templates\letterhead.dotm", NewTemplate:=False, DocumentType:=0) 
Set doc.AttachedTemplate = Nothing 

Ewentualnie zmienić prawa dostępu tak tylko masz na szablonie dostęp do zapisu.

+0

niesamowite, dzięki człowieku. – gravyface

+0

Nienawidzę go zabrać, ale dostaję błąd składniowy na 'Set doc.AttachedTemplate = Nothing' oznajmiając," Run-time error "5946 ':' Name 'nie jest właściwością referencyjną." – gravyface

+0

Ok, udało mi się go uruchomić, zmieniając 'doc.AttachedTemplate =" "', który MsgBox potwierdza, przywraca go do Normal.dotm. Jednak szablon jest nadal zablokowany, więc ta metoda nie działa. – gravyface