在Office 2013环境下,查看功能区--审阅--修订可发现 该版本的修订显示状态已与之前的2010不同:
分别分为简单编辑、所有标记、无标记以及原始状态,不同显示状态下 看到的效果不同,那么如何通过文档控件去控制这个显示状态呢?
首先我们可以录制宏得到对应宏代码:
Sub 宏4()
'
' 宏4 宏
'
'简单标记 wdRevisionsMarkupSimple=1
'wdRevisionsViewFinal=0 显示应用了格式和内容更改的文档
With ActiveWindow.View.RevisionsFilter
.Markup = wdRevisionsMarkupSimple
.View = wdRevisionsViewFinal
End With
'所有标记 wdRevisionsMarkupAll=2
With ActiveWindow.View.RevisionsFilter
.Markup = wdRevisionsMarkupAll
.View = wdRevisionsViewFinal
End With
'无标记 wdRevisionsMarkupNone=0
With ActiveWindow.View.RevisionsFilter
.Markup = wdRevisionsMarkupNone
.View = wdRevisionsViewFinal
End With
'原始状态 wdRevisionsMarkupNone=0
'wdRevisionsViewOriginal=1 显示进行更改之前的文档。
With ActiveWindow.View.RevisionsFilter
.Markup = wdRevisionsMarkupNone
.View = wdRevisionsViewOriginal
End With
End Sub
根据录制到的宏代码 查询VBA帮助
参考资料:
https://msdn.microsoft.com/en-us/VBA/word-vba/articles/view-revisionsfilter-property-word?f1url=https%3A%2F%2Fmsdn.microsoft.com%2Fquery%2Fdev11.query%3FappId%3DDev11IDEF1%26l%3Dzh-CN%26k%3Dk(vbawd10.chm161808446)%3Bk(TargetFrameworkMoniker-Office.Version%3Dv15)%26rd%3Dtrue
https://msdn.microsoft.com/library/90b90dd8-ead3-8e3c-f27e-a4614d12798c%28office.15%29.aspx
https://msdn.microsoft.com/zh-cn/library/ff836916.aspx
经过查看VBA帮助可知:
由此 我们将宏代码转成JS代码可得如下参考代码:
简单标记:
var doc=obj.ActiveDocument;//obj为文档控件对象
var docview=doc.ActiveWindow.View;
docview.RevisionsFilter.Markup=1;
docview.RevisionsFilter.View =0;
所有标记:
var doc=obj.ActiveDocument;//obj为文档控件对象
var docview=doc.ActiveWindow.View;
docview.RevisionsFilter.Markup=2;
docview.RevisionsFilter.View =0;
无标记:
var doc=obj.ActiveDocument;//obj为文档控件对象
var docview=doc.ActiveWindow.View;
docview.RevisionsFilter.Markup=0;
docview.RevisionsFilter.View =0;
原始标记:
var doc=obj.ActiveDocument;//obj为文档控件对象
var docview=doc.ActiveWindow.View;
docview.RevisionsFilter.Markup=0;
docview.RevisionsFilter.View =1;
根据VBA接口解释 该代码同样适用于Office 2016.
|