Есть документ, в котором отслеживаются изменения (в режиме правки). Нужно сделать в окне документа области Pane, в одной из которых исходный документ (только чтение), во второй - изменённый документ (только чтение), в основной области - документ в режиме правки. По аналогии с функцией сравнения, но только для одного документа.
Для изменения представления использую для области .View.RevisionsFilter
Не знаю, каким образом сделать различное представление документа в разных областях?
Если отказаться от областей (Pane) и создать новые окна одного и того же документа, то настроить в каждом из них необходимое отображение можно. Но как тогда можно расположить три окна одного документа рядом друг с другом, как в функции сравнения?
Есть решение с созданием временного файла:
Макрос
Sub CompareDocVersions()
Dim ActiveDocFullName As String
Dim ActiveDocName As String
Dim ActiveDocPath As String
Dim TmpFileFullName As String
Dim objFile As Object
With ActiveDocument
ActiveDocFullName = .FullName
ActiveDocName = .Name
ActiveDocPath = .Path
End With
TmpFileFullName = ActiveDocPath & "\" & "TMP_" & ActiveDocName
Set objFile = CreateObject("Scripting.FileSystemObject").GetFile(ActiveDocFullName)
objFile.Copy TmpFileFullName
Documents.Open TmpFileFullName
Documents(TmpFileFullName).RejectAllRevisions
Documents(TmpFileFullName).Save
Application.CompareDocuments _
OriginalDocument:=Documents(TmpFileFullName), _
RevisedDocument:=Documents(ActiveDocFullName), _
Destination:=wdCompareDestinationRevised, _
Granularity:=wdGranularityWordLevel, _
CompareFormatting:=True, _
CompareCaseChanges:=True, _
CompareWhitespace:=True, _
CompareTables:=True, _
CompareHeaders:=True, _
CompareFootnotes:=True, _
CompareTextboxes:=True, _
CompareFields:=True, _
CompareComments:=True, _
CompareMoves:=True, _
RevisedAuthor:="KR", _
IgnoreAllComparisonWarnings:=False
ActiveWindow.ShowSourceDocuments = wdShowSourceDocumentsBoth
ActiveWindow.View.SplitSpecial = wdPaneRevisions
End Sub
Но хотелось бы что-то более элегантное, и без временных файлов...