+ -
当前位置:首页 → 问答吧 → [求助]如何批量解除指定文件夹中的所有相同设置文档保护的文档

[求助]如何批量解除指定文件夹中的所有相同设置文档保护的文档

时间:2008-05-27

来源:互联网

Sub 批量对指定文件夹下的所有选取文档进行文档保护()
Dim Adoc As String, SetPsDoc As Document
    On Error Resume Next
    ChDrive "D"
    ChDir "D:\Downolads"
    Adoc = Dir("*.doc")
    Application.ScreenUpdating = False
    Do While Adoc <> ""
'        MsgBox Adoc
        Set SetPsDoc = Documents.Open(Adoc)
        SetPsDoc.Protect Type:=wdAllowOnlyFormFields, Password:="tangqingfu"
        SetPsDoc.Close True
        Adoc = Dir()
    Loop
    Application.ScreenUpdating = True
End Sub

请教对上述批量对指定文件夹下的所有选取文档进行文档保护该如何批量解除?

作者: tangqingfu   发布时间: 2008-05-27

请清福兄测试一下,我未测试。

Option Explicit

Sub 批量解除文档保护()
    Dim Adoc As String, SetPsDoc As Document
    Dim myPassWord As String
    On Error Resume Next
    myPassWord = "tangqingfu"
    ChDrive "D"
    ChDir "D:\Downolads"
    Adoc = Dir("*.doc")
    Application.ScreenUpdating = False
    Do While Adoc <> ""
        '        MsgBox Adoc
        Set SetPsDoc = Documents.Open(FileName:=Adoc, Visible:=False)
        With SetPsDoc
            If .ProtectionType <> wdNoProtection Then .Unprotect myPassWord
            .Close True
            Adoc = Dir()
        End With
    Loop
    Application.ScreenUpdating = True
End Sub
'----------------------

作者: 守柔   发布时间: 2008-05-27

To 守版:

在两台分别装Word 2002和Word 2003机子上测试“批量对指定文件夹下的所有选取文档进行文档保护”代码时,发现只能对部分所选文档进行文档保护。在测试时也发现“批量解除文档保护代码”出现这种情况(部分解除)。

不知其他网友测试结果如何?

提议:

能否将代码一楼和二楼的代码分别改为“批量对指定文件夹下的所选文档进行文档保护”、“指定文件夹下的所选文档保护的批量解除”,这样感觉更符合一般人的操作

即在运行代码时,弹出对话框,选择路径后,对该路径下的所选文档(部分或全部)进行文档保护或批量解除文档保护。

[此贴子已经被作者于2008-5-27 19:48:13编辑过]

作者: tangqingfu   发布时间: 2008-05-27

QUOTE:
以下是引用tangqingfu在2008-5-27 19:37:48的发言:

To 守版:

在两台分别装Word 2002和Word 2003机子上测试“批量对指定文件夹下的所有选取文档进行文档保护”代码时,发现只能对部分所选文档进行文档保护。在测试时也发现“批量解除文档保护代码”出现这种情况(部分解除)。

不知其他网友测试结果如何?

提议:

能否将代码一楼和二楼的代码分别改为“批量对指定文件夹下的所选文档进行文档保护”、“指定文件夹下的所选文档保护的批量解除”,这样感觉更符合一般人的操作

即在运行代码时,弹出对话框,选择路径后,对该路径下的所选文档(部分或全部)进行文档保护或批量解除文档保护。


由于使用DIR函数遍历文件夹并打开文件时,文件夹中的项目将产生变化(WORD每打开一个文件,会有临时文件/副本产生),可能会影响文件集合。

请使用FILEDIALOG对象。

如下:

'* +++++++++++++++++++++++++++++
'* Created By SHOUROU@ExcelHome 2008-5-28 6:54:51
'仅测试于System: Windows NT Word: 11.0 Language: 2052
'№ 0410^The Code CopyIn [ThisDocument-ThisDocument]^'
'* -----------------------------
Option Explicit
Sub SAMPLE()
    Dim myDialog As FileDialog
    Dim oFile As Variant
    Dim oDoc As Document
    Dim myResult As VbMsgBoxResult
    Dim myPassWord As String
    On Error Resume Next
    myPassWord = "tangqingfu"
    '定义一个文件夹选取对话框
    Set myDialog = Application.FileDialog(msoFileDialogFilePicker)
    With myDialog
        .Filters.Clear    '清除所有文件筛选器中的项目
        .Filters.Add "所有 WORD 文件", "*.doc", 1    '增加筛选器的项目为所有WORD文件
        .AllowMultiSelect = True    '允许多项选择
        If .Show <> -1 Then Exit Sub
        myResult = MsgBox("选择是将进行对所选文件的设置文档保护,选择否将解除文档保护!", vbYesNo)
        For Each oFile In .SelectedItems    '在所有选取项目中循环
            Set oDoc = Documents.Open(FileName:=oFile, Visible:=False)
            With oDoc
                If myResult = vbYes Then    '如果选择了进行文档保护
                    '如果该文档未经过保护则使用保护窗体(文档)功能
                    If .ProtectionType = wdNoProtection Then .Protect Type:=wdAllowOnlyComments, Password:=myPassWord
                Else    '如果选择了取消文档保护
                    '如果文档已使用了保护文档的功能,则解除文档保护
                    If .ProtectionType <> wdNoProtection Then .Unprotect myPassWord
                End If
                .Close True
            End With
        Next
    End With
End Sub
'----------------------

作者: 守柔   发布时间: 2008-05-28

测试成功!

谢谢守版的代码!将批量设置指定文件夹下的所选文档保护和批量解除指定文件夹下的所选文档保护合一为一,代码精妙,更体现了人类化的特点!收藏学习中……

作者: tangqingfu   发布时间: 2008-05-28

不断跟帖,跟着学习

作者: szqhb   发布时间: 2009-11-25

引用:
原帖由 守柔 于 2008-5-28 06:57 发表
QUOTE:以下是引用tangqingfu在2008-5-27 19:37:48的发言:To 守版:在两台分别装Word 2002和Word 2003机子上测试“批量对指定文件夹下的所有选取文档进行文档保护”代码时,发现只能对部分所选文档进行文档保护。在测 ...
我测试在窗体保护有个问题,帮助修复下

'如果该文档未经过保护则使用保护窗体(文档)功能
                    If .ProtectionType = wdNoProtection Then .Protect Type:=wdAllowOnlyFormFields, Password:=myPassWord

需要修改下

作者: 秋日的枫叶   发布时间: 2010-11-25

热门下载

更多