2011-03-01 59 views
0

我通過C#在Word文檔中運行宏,宏基本上創建了文檔的副本並添加了多個屬性。用msgbox通過C#運行Word VBA,無需用戶交互

但問題是,我的宏有一個確認msgbox在需要用戶交互的代碼的某個點。

我正在使用下面的代碼從MS的網站抓取。所以問題是,

是否有任何方法來抑制或自動確認宏運行中顯示的消息框?

private void RunMacro(object oApp, object[] oRunArgs) 
{ 
    oApp.GetType().InvokeMember("Run", 
     System.Reflection.BindingFlags.Default | 
     System.Reflection.BindingFlags.InvokeMethod, 
     null, oApp, oRunArgs); 
} 

回答

1

既然是宏,只是改變它,所以它不顯示確認MSGBOX。

當您需要宏在另一個確認msgbox應出現的上下文中時,向您的宏代碼添加一個布爾標誌useConfirmationMsgBox as Boolean,並且只有當此標誌爲真時才顯示MsgBox。然後,提供兩個不同的入口點,其中一個將useConfirmationMsgBox設置爲true,另一個入口點設置爲false。

+0

感謝Doc Brown的回覆。我想在不編輯宏代碼的情況下執行此操作,因爲它會影響我們公司的大量文檔...如果我更新了模板,它將確實是開銷:(... – AnarchistGeek 2011-03-01 14:36:15

+0

如果我找到了你,你沒有運行一個宏,而是同一個宏的幾十個(或更多)副本?你的宏不是可以在一個地方改變的文檔模板的一部分嗎?那麼這會給你一個維護噩夢的時間會少一些或者更晚。 ,可以使用Windows消息傳遞系統將模擬的「Enter」鍵筆劃發送到確認MsgBox,但這些類型的解決方案往往非常不穩定,我不會認真推薦。你的文件。 – 2011-03-01 15:22:31

相關問題