2016-05-20 4 views
0

Ich erstelle einige Berichtsvorlagen. Sie basieren alle auf einer "Master-Vorlage" mit einem bestimmten Layout und Tabellen. Ich habe dann eine Excel-Tabelle, die ich verwende, um die Master-Vorlage zu füllen, dann als neue Vorlage für die Berichterstattung dieses bestimmten Elements zu speichern. Ich hatte das funktioniert gut, aber erkennen, mein Code war ein neues Dokument auf der Grundlage der Master-Vorlage zu öffnen und dann als die neuen Vorlagen zu speichern.Word-Vorlage als Vorlage öffnen, kein Dokument (aus Excel)

Das ist in Ordnung, aber meine Mastervorlage enthält jetzt ein Benutzerformular für das Document_New() -Ereignis. Als solches muss ich es als TEMPLATE öffnen, damit ich es füllen und als neue Vorlage speichern kann. Wenn der Code den Master als Dokument und nicht als Vorlage öffnet, wird das Benutzerformular sofort ausgeführt. Ich brauche es, damit ich den Master öffnen, ausfüllen und speichern kann. Wenn ein Bericht erstellt werden muss, werden die neuen Templates geöffnet, DANN wird das Benutzerformular ausgeführt.

Mein Code (in der Excel-Datei), um die Master-Template zu öffnen ist:

Dim wdApp As New Word.Application 'a new instance of Word 
    Dim wdDoc As Word.Document   'our new Word template 
    Dim myWordFile As String   'path to Word template 

    myWordFile = "W:\Entity\Inspect\WORD\INSPECTION TEMPLATES\Inspection Template - 20160519.dotm" 

    wdDoc.SaveAs "W:\Entity\Inspect\WORD\INSPECTION TEMPLATES\Report Templates\" & vUnit & "\" & vItem & " Thorough Examination.dotm", wdFormatXMLTemplateMacroEnabled 

    wdApp.Documents.Close 
+0

Sie tatsächlich scheinen nicht das Bit geschrieben haben Code, der die Word-Vorlage öffnet! Mit dem Standardsatz wdDoc = wdApp.Documents.Open (myWordFile) * sollte die Vorlage jedoch als Vorlage geöffnet werden (und Document_New() nicht ausgelöst werden). Ist das nicht was passiert? –

Antwort

1

Sie könnten versuchen, vorübergehend zu deaktivieren Makros:

tmpAut = wrdApp.Application.AutomationSecurity 'cache current setting 
wdApp.Application.AutomationSecurity = msoAutomationSecurityForceDisable 

'do your thing here 

wdApp.Application.AutomationSecurity = tmpAut 'reset previous 
+0

Hallo Tim. Das verhinderte das Laden des Formulars während des Auffüllens etc., aber die resultierende Vorlage enthält nicht die Benutzerform oder den Wortcode. Wenn die Mastervorlage (Benutzerformular und Code) als Dokument geöffnet und als neue Vorlage gespeichert wird, verliert sie die Benutzermaske. –

+0

Vielleicht aktualisieren Sie Ihre Frage, um den neuen Code hinzuzufügen, den Sie ausprobiert haben. –

Verwandte Themen