Как проверить, было ли изменено содержимое документа Word - PullRequest
0 голосов
/ 14 апреля 2020

Я с нетерпением жду способа проверить, был ли документ изменен.

  1. Свойство Activedocument.Saved недостаточно, потому что если вы измените sth и отмените это, документ не будет изменен но .Saved изменится.
  2. Контрольной суммы текста документа будет недостаточно, поскольку не включая изменения в форматировании (полужирный шрифт, itali c et c.).
  3. Date / времени и размера файла будет недостаточно (команда сохранения из-за того, что она может измениться, даже без изменения в документе).
  4. встроенный в MS Word сравнение - я не могу использовать это, потому что сначала я вообще работаю над вложенными документами ( один основной документ содержит несколько вложенных документов, и я хочу знать, какой вложенный документ был изменен), и я не хочу создавать копию вложенных документов или создавать новый объект документа для сравнения.

Я придумал, что я сделает контрольную сумму из .WordOpenXML.

. Для открытого основного документа я вычисляю контрольную сумму

For each sd in Activedocument.SubDocuments
    'calculate and remember checksum of subDocument
    ...
Next sd

Для закрытия основного документа

For each sd in Activedocument.SubDocuments
    'calculate and compare with previous checksum of subDocument
    ...
Next sd

Но для каждой проверки .WordOpenXML возврат ди другая стоимость. Похоже, что значение WordOpen XML генерируется при каждом вызове.

Это способ избежать этого?

Debug.Print Selection.WordOpenXML=Selection.WordOpenXML

Resume False: -)

Или, может быть, у вас есть другой способ проверить, был ли документ изменен?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...