我会定期从各种客户那里获取Word文档,有时他们会以“只读”方式将它们发送给我。模式。虽然访问' View>并不是什么大不了的事。编辑文档'手动,我似乎无法在我的VBA代码中找到如何做到这一点。
将文档打开为可编辑文件,或者在文档打开后将其切换为可编辑文件就足以满足我的需求。
请注意,我无法使用' readOnly = false'打开文档。因为它看起来像是设置为“只读”推荐' (基于我阅读Document.Open上的MS手册页)。
IN CONTEXT: 关闭'阅读模式'我也遇到了问题。默认情况下文件正在打开。我已发布此问题并回答here。
答案 0 :(得分:0)
下面的代码将更改已关闭文件的ReadOnly属性,将其ReadOnly属性设置为True或False,具体取决于提供给该过程的参数。
Private Sub SetReadOnlyProperty(Fn As String, _
ByVal ReadOnly As Boolean)
' 21 Nov 2017
Dim Fso As Object
Dim Doc As Object
Set Fso = CreateObject("Scripting.FileSystemObject")
Set Doc = Fso.GetFile(Fn)
If (Doc.Attributes And vbReadOnly) <> Abs(Int(ReadOnly)) Then
Doc.Attributes = Doc.Attributes Xor vbReadOnly
End If
End Sub
此过程需要访问MS Scripting Runtime DLL。通过选中VBE窗口中Tools&gt; References中的Miscrosoft Scripting Runtime
框,启用此访问权限。下面是如何调用该函数的示例。请注意,如果提供的文件不存在,将导致错误。
Private Sub TestReadOnly()
SetReadOnlyProperty "H:\Test Folder\Test File.docx", False
End Sub