Skipping Password-Protected Documents in a Batch Process

Article contributed by Ibby

The Documents.Open method has a PasswordDocument parameter where you can specify the password of the document to be opened. If you put in a nonsense password (i.e.: one that is unlikely to be used by any sane person as a password!), you will observe the following behaviour:

Option Explicit
Public Sub ProcessBatch()
Dim strFileName As String
Dim strFilePath As String
Dim oDoc As Document
    ' Set Directory for Batch Process
    strFilePath = "C:\Test\"
    ' Get Name of First .doc File from Directory
    strFileName = Dir$(strFilePath & "*.doc")
    While Len(strFileName) <> 0
        ' Set Error Handler
        On Error Resume Next
        ' Attempt to Open the Document
        Set oDoc = Documents.Open( _
                   FileName:=strFilePath & strFileName, _
        Select Case Err.Number
            Case 0
                ' Document was Successfully Opened
                Debug.Print strFileName & " was processed."

            Case 5408
                ' Document is Password-protected and was NOT Opened
                Debug.Print strFileName & " is password-protected " & _
                    "and was NOT processed."
                ' Clear Error Object and Disable Error Handler
                On Error GoTo 0
                ' Get Next Document
                GoTo GetNextDoc

            Case Else
                ' Another Error Occurred
                MsgBox Err.Number & ":" & Err.Description
        End Select
        ' Disable Error Handler
        On Error GoTo 0
        '---Perform Action on Document Here---
        ' Close Document
        ' Clear Object Variable
        Set oDoc = Nothing
        ' Get Next Document from Specified Directory
        strFileName = Dir$()
End Sub