読み取り専用の確認、その他のアラートなど。これらのポップアップをどうするか?またはそれらを無視しますか?
私の答えを参照してください ここ。
基本的に、「アラートの表示」方法ですべてのアラートを無効にします。
Microsoft.Office.Interop.[OFFICE_APP].Application app = new Microsoft.Office.Interop.[OFFICE_APP].Application();
app.DisplayAlerts = false;
ここで、[OFFICE_APP]は、Word、Excelなど、使用しているOfficeプログラムの名前です。
マクロを許可するように求めるセキュリティメッセージを防ぐための別の方法があります。
私はMSDNから この記事 を読み、次のコードを理解しました:
Application wordApp = new Application()
{
Visible = false,
AutomationSecurity = Microsoft.Office.Core.MsoAutomationSecurity.msoAutomationSecurityForceDisable
};
ファイルを開く前にファイルのコピーが作成されるため、AutomationSecurityをデフォルト設定に戻す必要はありません。
注の追加:パスワードで保護されている一部のファイル形式(.XLSをテストしましたが、おそらく他の形式もテストしました)の場合、app.DisplayAlerts = false
はパスワードダイアログをバイパスしません。
この状況では、開いたときに偽のパスワードを渡すだけで、エラーがスローされます。必要に応じてキャッチします。
var app = new Application();
app.DisplayAlerts = false;
var workbook = app.Workbooks.Open(filePath, "fakePassword"); // Bypasses dialog, throws error
この状況でスローされるエラーは次のとおりです。
System.Runtime.InteropServices.COMException:指定したパスワードが正しくありません。 CAPS LOCKキーがオフになっていることを確認し、正しい大文字を使用してください。
これを試して:
Microsoft.Office.Interop.Word.Application appWord = new
Microsoft.Office.Interop.Word.Application();
appWord.DisplayAlerts = Microsoft.Office.Interop.Word.WdAlertLevel.wdAlertsNone;
これにより、ポップアップが無効になります。