2010-07-26 14 views
5

मेरे पास एक मैक्रो है जो नेटवर्क शेयर पर संग्रहीत टेम्पलेट के आधार पर एक नया दस्तावेज़ बनाता है। यह मैक्रो प्रत्येक उपयोगकर्ता के Word \ STARTUP फ़ोल्डर में "macros.dotm" फ़ाइल के रूप में संग्रहीत किया जाता है और टूलबार में जोड़े गए बटन द्वारा निष्पादित किया जाता है।दस्तावेज़। लॉक होने पर परिणाम जोड़ें

मैक्रो कोड निष्पादित होने पर टेम्पलेट फ़ाइल लॉक हो जाती है और तब तक लॉक रहता है जब व्युत्पन्न दस्तावेज़ अभी भी किसी अन्य उपयोगकर्ता द्वारा खुलता है।

मैक्रो के आधार पर नए दस्तावेज़ खोलने की उनकी क्षमता पर इसका कोई असर नहीं पड़ता है, लेकिन अगर मैं टेम्पलेट को संपादित करना चाहता हूं, तो मुझे उन्हें शब्द बंद करने के लिए कहना होगा (और उम्मीद है कि कोई और इसमें नहीं जाएगा)।

मैक्रो कोड:

इस के आसपास
Documents.Add Template:="F:\templates\letterhead.dotm", NewTemplate:=False, DocumentType:=0` 

उत्तर

2

समस्या यह है कि टेम्पलेट नेटवर्क ड्राइव पर है - यह एक बहुत ही आम मुद्दा है। इसके आस-पास जाने का एक तरीका यह है कि अपनी कॉलिंग टेम्पलेट को स्थानीय रूप से पहले उस टेम्पलेट पर कॉपी करें और फिर उस पर आधारित एक नया दस्तावेज़ बनाएं (और तब पूरा होने पर टेम्पलेट हटाएं)।

+0

यदि टेम्पलेट उस से बनाए गए दस्तावेज़ों के लिए कोड या यूआई अनुकूलन प्रदान करता है, तो मैं हटाना छोड़ दूंगा और स्थानीय प्रतिलिपि को नेटवर्क ड्राइव से ताजा प्रतिलिपि से बदल दूंगा, जब उपयोगकर्ता टेम्पलेट के लिए दस्तावेज़ बनाने की शुरुआत करता है। उस स्थिति को संभालने के लिए सावधानी बरतें जहां उपयोगकर्ता के पास टेम्पलेट से बनाए गए दस्तावेज़ को पहले से खोल दिया गया है और एक नया बनाने के लिए कोशिश करता है। – robartsd

3

एक तरह से टेम्पलेट से दस्तावेज़ अलग करने के बाद यह उत्पन्न होता है:

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

वैकल्पिक रूप से, इसलिए केवल आप टेम्पलेट पर फाइल सिस्टम अनुमतियों को परिवर्तित पहुंच लिखो।

+0

भयानक, धन्यवाद आदमी। – gravyface

+0

इसे दूर करने से नफरत है, लेकिन मुझे 'सेट डॉक.एटैचेट टेम्पलेट = कुछ भी नहीं' पर एक वाक्यविन्यास त्रुटि मिल रही है, "रन-टाइम त्रुटि '5 9 46': 'नाम' संदर्भ संपत्ति द्वारा नहीं है।" – gravyface

+0

ठीक है, मैं इसे 'doc.AttachedTemplate = ""' बदलकर काम करने में सक्षम था, जो एक MsgBox पुष्टि करता है कि यह इसे Normal.dotm पर वापस डिफ़ॉल्ट करता है। हालांकि, टेम्पलेट अभी भी बंद है, इसलिए यह विधि काम नहीं करती है। – gravyface