2016-05-20 4 views
0

いくつかのレポートテンプレートを作成しています。それらはすべて、特定のレイアウトとテーブルを持つ「マスターテンプレート」に基づいています。次に、マスターテンプレートを作成し、その特定のアイテムのレポート用の新しいテンプレートとして保存するために使用しているExcelテーブルがあります。私はこれが正常に動作しましたが、自分のコードがマスターテンプレートに基づいて新しい文書を開き、新しいテンプレートとして保存していたことを認識しています。Wordテンプレートをテンプレートではなく、ドキュメントとして開く(Excelから)

これで問題ありませんが、マスターテンプレートにDocument_New()イベントにuserformが含まれるようになりました。そのため、私はテンプレートとして開く必要があるので、新しいテンプレートとして移入して保存することができます。テンプレートではなくドキュメントとしてマスタを開くコードでは、userformがすぐに実行されます。私はマスターを開いて、それを保存して保存するために必要です。レポートを作成する必要があるときは、userformが実行された後に新しいテンプレートが開きます。

マスターテンプレートを開くには(Excelファイルで)私のコードは次のとおりです。

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

あなたが実際にビットを掲載しているようには見えません。単語のテンプレートを開くコードの!しかし、標準のSet wdDoc = wdApp.Documents.Open(myWordFile)*を使うとテンプレートをテンプレートとして開くべきです(Document_New()を起動しないでください)。それは何が起こっているのではないですか? –

答えて

1

あなたは一時的に無効にするマクロを試みることができる:

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

'do your thing here 

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

こんにちはTim。これは、フォームの読み込み中にフォームの読み込みを防止するために働いていましたが、結果のテンプレートにはユーザーフォームやワードコードがありません。 マスタテンプレート(userformとcode)をドキュメントとして開いて新しいテンプレートとして保存すると、userformが失われます。 –

+0

質問を更新して、試した新しいコードを追加することがあります。 –

関連する問題