有没有办法使用VBA只读取Microsoft Word 2003文档中的段落?
答案 0 :(得分:1)
我认为你只能通过选择不保护的段落来实现。
下面是一个示例宏,它选择一段文本,启用它进行编辑,然后锁定文档的其余部分。您可以使用IRM或密码保护,下面的宏使用后者。你应该用更优雅的东西替换下面的选择方法
Selection.MoveLeft Unit:=wdCharacter, Count:=11, Extend:=wdExtend
Selection.Editors.Add wdEditorEveryone
ActiveDocument.protect Password:="password", NoReset:=False, Type:= _
wdAllowOnlyReading, UseIRM:=False, EnforceStyleLock:=False
答案 1 :(得分:0)
您可以通过将要保护的文本放入文本表单并保护它来实现。显然有点粗糙。
答案 2 :(得分:0)
上面的答案会在可编辑区域留下黄色突出显示。
另一种方法是添加此AutoOpen代码 http://answers.microsoft.com/en-us/office/forum/office_2010-word/remove-highlighting-in-editable-areas-of-protected/bfe22585-c5d3-4c19-997f-092fc4aaaa7a
Sub AutoOpen()
ActiveWindow.View.ShadeEditableRanges = False
End Sub
在Word 2007(已测试)中,更直接的方法是创建富文本内容控件并设置属性。这样可以轻松地将段落设为只读,而不会突出显示。
Sub LockContent()
Dim objCC As ContentControl
Set objCC = ActiveDocument.ContentControls.Add(Type:=wdContentControlRichText)
With objCC
.Range.Text = "123123" 'Your text
.LockContentControl = True
.LockContents = True
End With
End Sub
更多ContentControl.LockContentControl属性 https://msdn.microsoft.com/en-us/library/office/ff835775.aspx
希望这有助于任何有同样头痛的人! :d