Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何抑制“VIsual Basic”命令;“宏已禁用”;在C中打开word文档时显示的对话框#_C#_.net_Ms Word_Automation_Ms Office - Fatal编程技术网

C# 如何抑制“VIsual Basic”命令;“宏已禁用”;在C中打开word文档时显示的对话框#

C# 如何抑制“VIsual Basic”命令;“宏已禁用”;在C中打开word文档时显示的对话框#,c#,.net,ms-word,automation,ms-office,C#,.net,Ms Word,Automation,Ms Office,我有一个很烦人的问题 我正在通过c#/COM互操作(word 2007)打开word文档。我想防止宏运行,因为其中一些宏可能会崩溃(缺少书签的旧文件等) 因此,我运行以下代码来抑制所有可能弹出的对话框: Word.ApplicationClass wordApplication = new Word.ApplicationClass(); wordApplication.DisplayAlerts = Word.WdAlertLevel.wdAlertsNone; wordApplicati

我有一个很烦人的问题

我正在通过c#/COM互操作(word 2007)打开word文档。我想防止宏运行,因为其中一些宏可能会崩溃(缺少书签的旧文件等)

因此,我运行以下代码来抑制所有可能弹出的对话框:

Word.ApplicationClass wordApplication = new Word.ApplicationClass();

wordApplication.DisplayAlerts = Word.WdAlertLevel.wdAlertsNone;

wordApplication.ShowVisualBasicEditor = false;

wordApplication.AutomationSecurity = 
  Microsoft.Office.Core.MsoAutomationSecurity.msoAutomationSecurityForceDisable;

Word.Document wordDoc = null;
然后,当我执行以下代码时,我会收到消息框“此项目中的宏被禁用”

我需要抑制这个消息,检测它是否正在显示并“确定”它,或者找到一种方法,在没有VB阻碍的情况下禁用启动宏

有什么想法吗?

可能会有帮助。我不知道你怎么把它翻译成C

VBA代码:

WordBasic.DisableAutoMacros 1   ' Disables auto macros
WordBasic.DisableAutoMacros 0   ' Enables auto macros

我不知道这是否会禁用“此项目中的宏已被禁用”消息。

我从未用C#实现过此功能,但用VB.NET就可以了。方法如下:

我只是想跟进一下,看看下面的答案是否能回答你的问题。托德,这已经是几年前的事了。您知道有什么新的东西可以在C#中使用吗?@ArbiryStringOfLetters不幸的是,没有。Office编程对于VB/VBA来说继续工作得更好/更容易。我想C#在其他任何地方都获得了所有的荣誉,但在办公室里,VB.NET仍然占据着统治地位。
WordBasic.DisableAutoMacros 1   ' Disables auto macros
WordBasic.DisableAutoMacros 0   ' Enables auto macros