2012-04-15 6 views
2

私はかなり長い間この問題を回避しようとしていますが、まだ見つかっていません。 Documents.Close()を呼び出すと、visible = falseで開かれたWordが表示されます。Documents.CloseによってWordが表示される

これは私の近くの文(ドキュメントがまだ再び保存する必要が保存されません)です。

WordApp.Documents.Close(Word.WdSaveOptions.wdDoNotSaveChanges, 
    Word.WdOriginalFormat.wdOriginalDocumentFormat); 

答えて

2

あなただけWordApp.Quit()を呼び出すことができます。

OfficeアプリケーションはまだMDIの方法に従います:1つのアプリケーションを実行し、そのアプリケーションで1つ以上のドキュメントを開くことができます。

私たちは通常、1つのドキュメントだけを開くので、バックグラウンドでそのアプリケーションを追跡するのは簡単です。しかしここには2つのレベルがあります。

1

操作の直後に明示的にWordApp.Visible = falseを設定することもできます。これは短いフラッシュを引き起こすかもしれませんが、アプリケーションを不可視に戻すべきです。

視認性の瞬間を避けるため、時々WordApp.ScreenUpdatingプロパティを使用すると役立ちます。 Documents.Close()コールを試行する前にfalseに設定し、完了後にtrueにリセットします。

0

受け入れられた解決策(WordApp.Quit()を呼び出す)は、私にとって実行可能な選択肢ではありませんでした。私は)Documents.Closeを(呼び出しの直前に

WordApp.ScreenUpdating = false 

を設定しようと、それはどちらか助けていない - 私はまだ画面のフラッシュを得ました。

私はその後すぐに、文書を開いた後

WordApp.ActiveWindow.Visible = false 

を設定してみました。違いはありませんでした。

は最後に、私はよく私のモニターのセットアップに表示デスクトップ領域の外にウィンドウ表示を移動させるように(

WordApp.ActiveWindow.Top = -5000 

を設定してみました! - あなたは珍しい(巨人を持っている場合)動作しない場合がありますセットアップを監視しますあなたに合わせて調整してください)、それは問題を解決しました - それ以上の点滅はありません。

迷惑なハックですが、私の場合にはうまくいきました。

0

上記のコメントはありません。私は試してみました:

WordApp.ActiveWindow.Top = -5000

しかし、私のプログラムは、「アクティブなウィンドウが最大化されている」例外で終了します。

私は最終的には、以下の呼び出しによってそれを解決する前にDocument.Close()を呼び出す:

m_word.ActiveWindow.WindowState = WdWindowState.wdWindowStateMinimize;

それは私のための完璧なソリューションです。それがあなたのためにもうまくいくことを願っています。

関連する問題