1

ドキュメントを開く際にエラー メッセージにキー ストロークを送信する際に問題が発生します。

スタイル シートがない Word for Dos 5.5 ドキュメントで開こうとしているドキュメントは、手動で [無視] をクリックするとファイルが開きますが、これを行うには 1000 以上のファイルがあるため、これを自動化したいと考えています。

Office XP、2003、または 2010 でこのドキュメントを開いていますが、メッセージに影響を与えるキーストロークを取得できません。

私が試みてきたコードは次のとおりです。

Dim objWord As New Word.Application
    Dim objDoc As New Word.Document

    objDoc = objWord.Documents.Open(TempDir + ("\\" + fileInf.Name))

    System.Threading.Thread.Sleep(5000)
    SendKeys.Send("{Enter}")
    System.Threading.Thread.Sleep(5000)
    SendKeys.Send("{&I}")
    System.Threading.Thread.Sleep(5000)

    objWord.WindowState = Word.WdWindowState.wdWindowStateNormal
    objWord.Visible = True

私は私が何をしているのかを見るためだけに visible = true を使用しましたが、メッセージはそこに座っています。

4

1 に答える 1

1

keyPress を送信することは、問題の最善の解決策ではないと思います。これは、可能であれば避けるべきものです。

代わりに、Word メッセージを非表示にすることができます。可能な方法:

  • Application.DisplayAlertsファイルを開く前に、プロパティを使用してメッセージを無効にしてください。したがって、次のようになります。

    objWord.DisplayAlerts = Word.WdAlertLevel.wdAlertsNone
    

    MSDN からの重要な注意事項:

    このプロパティを wdAlertsNone または wdAlertsMessageBox に設定すると、 Microsoft Word は、実行が停止したときに wdAlertsAll に設定を戻しません。実行が停止したときに常に DisplayAlerts プロパティを wdAlertsAll に戻すようにコードを記述する必要があります。

  • Documents.Openメソッドの他のパラメーターを設定して、メッセージを無効にしてみてください。メッセージを無効にするかどうかを確認するためFormatに設定できるパラメータを考えています。wdOpenFormatAllWord

    wdOpenFormatAllWord :以前のバージョンの Microsoft Word と下位互換性がある Microsoft Word 形式


あなたが書くときSendKeys.Send("{Enter}")、私はあなたがSystem.Windows.Forms名前空間をインポートしていると思うので、それはSystem.Windows.Forms.SendKeys.Send("{Enter}").

SendKeys私の最初の答えで、私が提案した方法は、本当にメソッドを使用する必要がある場合は、 Excel.Application. (コーヒーが必要だったので...、質問はWordに関するものでしたが、完全にExcelに集中していました)。

残念ながら、このメソッドは Excelに存在しますが、 Objectには SendKeys メソッドはありWord.Applicationません。

于 2013-08-24T16:52:18.733 に答える