Как подавить диалог VIsual Basic «Макросы отключены», который отображается при открытии слова doc в C # - PullRequest
2 голосов
/ 23 сентября 2010

У меня действительно раздражающая проблема.

Я открываю текстовый документ через c # / COM Interop (Word 2007).Я хочу запретить запуск макросов, так как некоторые из них могут аварийно завершить работу (старые файлы с отсутствующими закладками и т. Д.).

Поэтому я запускаю следующий код для подавления всех диалогов, которые могут появиться:

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;

Когда я затем выполняю следующий код, я получаю сообщение «Макросы в этом проекте отключены».

 wordDoc = wordApplication.Documents.Open(
                ref paramSourceDocPath, ref paramMissing, ref paramMissing,
                ref paramMissing, ref paramMissing, ref paramMissing,
                ref paramMissing, ref paramMissing, ref paramMissing,
                ref paramMissing, ref paramMissing, ref paramMissing,
                ref paramMissing, ref paramMissing, ref paramMissing,
                ref paramMissing);

Мне нужно либо подавить это сообщение, либо отменить его, если оно отображаетсяи "ок" или найдите способ отключить макросы запуска без вмешательства VB.

Любые идеи?

Ответы [ 2 ]

2 голосов
/ 24 сентября 2010

Я никогда не мог заставить это работать с C #, но с VB.NET это было хорошо.Вот как это сделать: Как открыть документ, содержащий макрос AutoOpen, с помощью PowerShell?

0 голосов
/ 23 сентября 2010

Эта статья может помочь. Я не уверен, как бы вы перевели это на C #.

код VBA:

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

Я не знаю, отключит ли это сообщение «Макросы в этом проекте отключены».

...