私はテンプレートから新しい単語文書を開く小さなVB.Netアプリケーションを持っています(例えばDocument1.docxとして開きます)。いくつかのテキストを置き換えるコードを実行します。VB.Netは既に実行中の単語のインスタンスでActiveDocumentを使用しています
これで、開いている文書を編集することができます。小さな「winform」には「Complete」というボタンがあります。ユーザーがこれをクリックすると、ドキュメントを保存してさらに編集するなどしたい。
しかし、Wordの実行中のインスタンスでアクティブなドキュメントを表示するコードを取得することはできません。
私はactivedocumentを参照するたびに、開いているドキュメントがないという例外と例外がスローされます。
アクティブなドキュメントを保存するコードは、Word.Applicationオブジェクトが作成されている場所とは別の場所にあります。 Wordは、ドキュメントを開いた状態で実行していますが、それでも失敗します。
私は、開いている単語のインスタンスを取得していることを確認するために以下を試しました。 WordApp = Marshal.GetActiveObject( "Word.Application")
開いているドキュメントはまだ表示されません。
提案がありますか?
EDIT#1 - コードを含めないと申し訳ありません。
これはWordを起動し、いくつかの基本的な検索/置換を行うコードです。その後、form3が開始され、ユーザーは文書documentを編集します。このコードは、フォーム2をクリックすると実行されます。
Dim oWord As Word.Application
Dim oDoc As Word.Document
Dim path As String
path = "C:\Templates/"
Try
oWord = CreateObject("Word.Application")
oWord.Visible = True
Catch ex As Exception
''Some error handling code not included for the purpose of StackOverflow
End Try
Try
oDoc = oWord.Documents.Add(path & "MG11.dot")
Catch ex As Exception
''Some error handling code not included for the purpose of StackOverflow
End Try
With oWord.Selection.Find
''Find & Replace Code - this works so is not included for Stackoverflow
End With
Form3.Show()
Me.WindowState = FormWindowState.Minimized
Form1.WindowState = FormWindowState.Minimized '(form 1 has no code which effects Word)
End Sub
フォーム3にはボタンが1つあり、これを押すとドキュメントが保存されます。他の場所の情報に基づいてファイル名を付けます。ここでは基本コードだけを示しています - 私はvb.netにアクティブなドキュメントを見るだけでいいです。このコードは、私も試してみたWord.Document = WordApp.ActiveDocument
oDoc = WordApp.ActiveDocument
としてWord.Application 薄暗いoDocとしてフォーム3.
薄暗いWordAppクリックButton_1に走っています。 oDocが正しく設定されると
Dim WordApp As Word.Application
WordApp = Marshal.GetActiveObject("Word.Application")
Dim oDoc As Word.Document
oDoc = WordApp.ActiveDocument
」私は何も開いているドキュメントが存在しない旨、それはWordApp.ActiveDocumentに失敗するなど
保存を処理するためにSaveAs2を使用します。
は、私は人々が –
友達との合意を助けることができるようにあなたが、質問に関連するすべてのコードを示し示唆、我々はすでにので、我々はそれに追加することができているコードを参照してくださいする必要があります。 –
コードが追加されました。 –