新しいドキュメントが SharePoint ライブラリに保存されると ([新しいドキュメント] > [名前を付けて保存])、カスタム イベント ハンドラー (ItemAdded) によってドキュメント レコードが更新され、いくつかの列の値が入力される状況があります。また、ドキュメントはプログラムでチェックインされます。これらの変更は、バックエンドでトリガーされるため、Word インターフェイスからは見えません。すべてのサーバー プロパティと正しいチェックアウト ステータスでドキュメントを開くには、サーバーからドキュメントを閉じて再度開く必要があります。次のコードを使用して閉じたり開いたりしています。
Word._Document doc = this.Application.ActiveDocument;
doc.Close(Word.WdSaveOptions.wdDoNotSaveChanges, System.Type.Missing, System.Type.Missing);
Word.Document aDoc = this.Application.Documents.Open(docPath, System.Type.Missing, true, System.Type.Missing, System.Type.Missing, System.Type.Missing, System.Type.Missing, System.Type.Missing, System.Type.Missing, System.Type.Missing, System.Type.Missing, true, System.Type.Missing, System.Type.Missing, System.Type.Missing, System.Type.Missing);
aDoc.Activate();
ドキュメントは正常に閉じますが、開くとアプリケーションがクラッシュします。ただし、コードからのみドキュメントを閉じて、最近使用したファイル リストから手動でドキュメントを開くと、ドキュメントは正常に開きます。ドキュメントを開く前にクリーンアップする必要がありますか?
DocumentBeforeSave イベント (Cancel=true) を使用して、Word のデフォルトの保存操作をオーバーライドしたことに注意してください。それが関連情報かどうかはわかりません。
EDIT:上記のブロックがCOMExceptionまたは何らかの種類の例外をまったくスローするかどうかをキャッチしようとしましたが、そうではありません。open ステートメントで単にクラッシュします。