Microsoft Word を起動し、ユーザーが Word を閉じたときに再開する必要があるアプリケーションに取り組んでいます。以下のコードは機能するはずですが、機能しません。「オブジェクトがオブジェクトのインスタンスに設定されていません」というメッセージが表示される
1 Dim pInfo As New ProcessStartInfo
2 Dim P As New Process
3 pInfo.FileName = "C:\test\LLR.doc"
4 P = Process.Start(pInfo)
5 ''# Here is where it goes bad
6 P.WaitForInputIdle()
7 P.WaitForExit()
ウォッチ ウィンドウに入れると、2 行目以降のウォッチにp
aasystem.diagnostics.process
が表示されますが、4 行目以降は NOTHING に戻ります。プロセスは起動しますが、6 行目と 7 行目で監視できなくなりました。これは Visual Studio 2010 の「制限」ですか、それともオペレーター エラーですか? MS ヘルプには、2010 バージョンで使用可能なプロセスは表示されません (Visual Studio 2005 および Visual Studio 2008 にあります)。
-- フィードバックに基づく編集 - 最終的な解決策
Private Function StartWord(ByVal NewFileName As String) As Boolean
MessageBox.Show("When you have finished editing the report, save and close word to complete operation")
Dim wapp As Application
wapp = New Microsoft.Office.Interop.Word.Application
wapp.Documents.Open(NewFileName)
wapp.Visible = True
wapp.WindowState = WdWindowState.wdWindowStateMaximize
wapp.Caption = "Large Loss Report"
Try
While wapp.Documents.Count > 0
System.Windows.Forms.Application.DoEvents()
End While
wapp.Quit()
Catch ex As Exception
End Try
Return True
End Function