C # и Word2010: DeleteAllComments выдает «Эта команда недоступна». - PullRequest
1 голос
/ 07 февраля 2012

Я написал небольшой инструмент C #, удаляющий все комментарии в текстовом файле с помощью COM.

Раньше наша компания использовала WinXP + Office2003 и все работало идеально.

Теперь мы перешли на Win7 и Office2010 (64-разрядная версия).

В новой версии ОС и Office строка DeleteAllComments приводит к исключению, называемому «Эта команда недоступна». , но отсутствует дальнейшее объяснение.

Microsoft.Office.Interop.Word.Document document;
object missing = System.Reflection.Missing.Value;
document = wordInstance.Documents.Open(ref filename, ref missing, ref   ReadOnly, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref isVisible, ref missing, ref missing, ref missing, ref missing);

document.Activate();
document.AcceptAllRevisions();
document.DeleteAllComments();

Остальная часть кода работает отлично ... Кто-нибудь может помочь?

Спасибо заранее.

Приветствие Michael

Ответы [ 2 ]

2 голосов
/ 02 августа 2018

Я опоздал, но у меня была такая же проблема. Я выяснил, что команда document.DeleteAllComments () выдает исключение, если в документе нет комментариев.

с этими строками для меня больше нет исключений:

if(document.Comments.Count > 0)
    document.DeleteAllComments();
0 голосов
/ 09 февраля 2012

Кажется, моя проблема связана с очень строгими политиками безопасности в этой компании.В Office2010 запрещены макросы и обычный пользователь не может их включить.

(Для всех, кроме моей компании, проверьте настройку: Файл -> Параметры -> SecurityCenter -> Макросы)

Надеюсь, это помогло.

...