Macro to Unlock a Locked Word 2007 Document

W

WordWorker

Is it possible -- and how do I do it -- to write a macro that a text input
field will run to temporarily unlock a locked Word 2007 form? I wrote one
that will lock the document that will run "On exit" from a field, but no
matter how I phrase it I can't get a macro to unlock the doc.
 
G

Greg Maxey

Sub OnExit()
If ActiveDocument.ProtectionType <> wdNoProtection Then
ActiveDocument.Unprotect
MsgBox "I'm unlocked. Do your deed."
ActiveDocument.Protect wdAllowOnlyFormFields, True
MsgBox "I'm back in chains."
Else
MsgBox "I wasn't locked to start with"
End If
End Sub
 
W

WordWorker

Thank you so much, Greg. You are a job saver!


Greg Maxey said:
Sub OnExit()
If ActiveDocument.ProtectionType <> wdNoProtection Then
ActiveDocument.Unprotect
MsgBox "I'm unlocked. Do your deed."
ActiveDocument.Protect wdAllowOnlyFormFields, True
MsgBox "I'm back in chains."
Else
MsgBox "I wasn't locked to start with"
End If
End Sub
 
W

WordWorker

My excitement jumped the gun. I forgot to mention that the document is
password protected. As such, when it gets to the "ActiveDocument.Unprotect"
line, it chokes. I tried putting in the password as the string is indicated
to be written (see below), but the Debugger doesn't like that either. What
am I missing? What am I doing wrong?

ActiveDocument.Unprotect(password)
 
G

Greg Maxey

Replace "password" with the real password:

Sub OnExit()
If ActiveDocument.ProtectionType <> wdNoProtection Then
ActiveDocument.Unprotect Password:="password"
MsgBox "I'm unlocked. Do your deed."
ActiveDocument.Protect wdAllowOnlyFormFields, True
MsgBox "I'm back in chains."
Else
MsgBox "I wasn't locked to start with"
End If
End Sub
 
G

Graham Mayor

You would need to re-apply the password when reprotecting:

Dim sPassword as string
sPassword = "password"

'Unprotect the file
If ActiveDocument.ProtectionType <> wdNoProtection Then
bProtected = True
ActiveDocument.Unprotect Password:=sPassword
End If

'Do your stuff then

'Reprotect the document.
If bProtected = True Then
ActiveDocument.Protect _
Type:=wdAllowOnlyFormFields, _
NoReset:=True, _
Password:=sPassword
End If


--
<>>< ><<> ><<> <>>< ><<> <>>< <>><<>
Graham Mayor - Word MVP


<>>< ><<> ><<> <>>< ><<> <>>< <>><<>
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top