如何编辑只读Word文档(VBA)

时间:2017-11-17 23:32:13

标签: ms-word word-vba readonly

我会定期从各种客户那里获取Word文档,有时他们会以“只读”方式将它们发送给我。模式。虽然访问' View>并不是什么大不了的事。编辑文档'手动,我似乎无法在我的VBA代码中找到如何做到这一点。

将文档打开为可编辑文件,或者在文档打开后将其切换为可编辑文件就足以满足我的需求。

请注意,我无法使用' readOnly = false'打开文档。因为它看起来像是设置为“只读”推荐' (基于我阅读Document.Open上的MS手册页)。

IN CONTEXT: 关闭'阅读模式'我也遇到了问题。默认情况下文件正在打开。我已发布此问题并回答here

1 个答案:

答案 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