0

次のエラー メッセージが表示されます。「実行時エラー 5981。オブジェクト 'ドキュメント' のメソッド '追加' が失敗しました。」これは、テンプレートを使用して新しい Word 文書を作成しているときに発生します。コードは以下に掲載されており、2016 バージョンの 2 番目のユーザーが使用を開始するまで正常に機能していました。古いバージョンの Word テンプレートを使用しているすべての 2013 ユーザーで問題なく機能します。以下の Set wdDoc = wdApp... 行に到達すると、エラーが表示されます。

Public wdDoc As Word.Document
QuoteDirectory = "R:\PartsQuotes\"
QuoteTemplate = "QuoteTemplate.dot" 'template used for 2013 users
If Application.Version = "16.0" Then QuoteTemplate = QuoteTemplate2016.dotx"
Set wdApp = CreateObject("Word.Application") 'Create an instance of word
Set wdDoc = wdApp.Documents.Add(QuoteDirectory & QuoteTemplate) 'Open word file
wdApp.Visible = True

Word 文書を作成した後、Word 文書でさらに多くのことを行う必要があるため、Word.Document として作成する必要があります。2 番目の 2016 ユーザー用に 2 番目のテンプレートを作成することで、エラー メッセージを回避できます。ただし、すべてのユーザーに共通の共有テンプレートを使用する方がはるかに優れています。

4

2 に答える 2

0

怠惰な解決策は次のとおりです。

Dim wdDoc As Word.Document
Set wdDoc = GetObject("R:\PartsQuotes\QuoteTemplate.dot", "Word.Application") 
wdDoc.Application.Visible = True

これにより、現在の Word インスタンスのテンプレートに基づいて新しいドキュメントが開かれるか、何も開いていない場合は新しい Word アプリケーションが開かれます。

または、最初に .dotx テンプレートを試すには:

Dim wdDoc As Word.Document
On Error Resume Next
Set wdDoc = GetObject("R:\PartsQuotes\QuoteTemplate2016.dotx", "Word.Application") 
If Err.Number <> 0 Then 
    Set wdDoc = GetObject("R:\PartsQuotes\QuoteTemplate.dot", "Word.Application") 
End If
If not wdDoc Is Nothing Then wdDoc.Application.Visible = True
On Error GoTo 0 ' optional to reset the error handler

また、*x ファイルは Office 2007 以降で開くことができることに注意してください。.Application.Version = "12.0"

于 2016-09-16T14:28:35.690 に答える
0

自分の Excel アプリケーションで Word テンプレートを開きます。

次のステートメントを呼び出すと、エラー 5981 が発生します。

Set oTemplate = moWordApp.Documents.Add(template:=sTemplate, Visible:=True)

エラーは、既存の Word 文書を開くときにも発生する可能性があります。

moWordApp.Documents.Open(FileName:=...

私の状況では、エラー 5981 の原因は、Word テンプレートが信頼できるドキュメントではなかったことです。Word テンプレートを手動で開くと、保護されたビューで開かれました。テンプレートを VBA 経由で自動的に開くと、明らかにエラー 5981 が発生します。

于 2016-09-16T13:57:01.207 に答える