PC Review


Reply
Thread Tools Rate Thread

Batch Macro Tweak for Graham Mayor

 
 
Bruce Bumbier
Guest
Posts: n/a
 
      13th Jun 2008
Hello, On June 9 you sent me a batch macro to remove the same password from
multiple Word documents. I typed it in Visual basic in Word but I need to
know where to insert the old password in the macro, i.e. after .Password = ""
or ?? I am not a programmer so this is all "Greek" to me.
--
Bruce Bumbier
 
Reply With Quote
 
 
 
 
Graham Mayor
Guest
Posts: n/a
 
      14th Jun 2008
If you copy and paste the macro from the message into into the vba editor,
the macro when run prompts for the open and edit passwords. You don't have
to edit the macro code. The passwords you enter are assigned to the
variables sPassword1 and sPassword2 and those passwords are used for all the
documents. I did not include error trapping for missing or different macros
which is why I said that it was intended to work with a set of files all
with the same macro. See http://www.gmayor.com/installing_macro.htm which
explains how to use and depoloy macro listings

Public Sub UnPasswordAll()

Dim FirstLoop As Boolean
Dim strFileName As String
Dim sPassword1 As String
Dim sPassword2 As String
Dim strPath As String
Dim oDoc As Document
Dim Response As Long
Dim fDialog As FileDialog

Set fDialog = Application.FileDialog(msoFileDialogFolderPicker)

With fDialog
.Title = "Select folder and click OK"
.AllowMultiSelect = False
.InitialView = msoFileDialogViewList
If .Show <> -1 Then
MsgBox "Cancelled By User", , "Password"
Exit Sub
End If
strPath = fDialog.SelectedItems.Item(1)
If Right(strPath, 1) <> "\" Then strPath = strPath + "\"
End With

sPassword1 = InputBox("Enter Password to open Document")
sPassword2 = InputBox("Enter Password to edit Document")


On Error Resume Next
Documents.Close SaveChanges:=wdPromptToSaveChanges
FirstLoop = True

strFileName = Dir$(strPath & "*.doc")
While strFileName <> ""
Set oDoc = Documents.Open(strPath & strFileName, _
PasswordDocument:=sPassword1, _
WritePasswordDocument:=sPassword2)
If FirstLoop Then
With ActiveDocument
.Password = ""
.WritePassword = ""
End With
FirstLoop = False

Response = MsgBox("Do you want to process " & _
"the rest of the files in this folder", vbYesNo)
If Response = vbNo Then Exit Sub
Else
With ActiveDocument
.Password = ""
.WritePassword = ""
End With
End If
oDoc.Close SaveChanges:=wdSaveChanges
strFileName = Dir$()
Wend
End Sub


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

My web site www.gmayor.com
Word MVP web site http://word.mvps.org
<>>< ><<> ><<> <>>< ><<> <>>< <>><<>



Bruce Bumbier wrote:
> Hello, On June 9 you sent me a batch macro to remove the same
> password from multiple Word documents. I typed it in Visual basic in
> Word but I need to know where to insert the old password in the
> macro, i.e. after .Password = "" or ?? I am not a programmer so this
> is all "Greek" to me.



 
Reply With Quote
 
poi
Guest
Posts: n/a
 
      16th Apr 2010
I think I may love you Graham! This has saved me!!!!

"Graham Mayor" wrote:

> If you copy and paste the macro from the message into into the vba editor,
> the macro when run prompts for the open and edit passwords. You don't have
> to edit the macro code. The passwords you enter are assigned to the
> variables sPassword1 and sPassword2 and those passwords are used for all the
> documents. I did not include error trapping for missing or different macros
> which is why I said that it was intended to work with a set of files all
> with the same macro. See http://www.gmayor.com/installing_macro.htm which
> explains how to use and depoloy macro listings
>
> Public Sub UnPasswordAll()
>
> Dim FirstLoop As Boolean
> Dim strFileName As String
> Dim sPassword1 As String
> Dim sPassword2 As String
> Dim strPath As String
> Dim oDoc As Document
> Dim Response As Long
> Dim fDialog As FileDialog
>
> Set fDialog = Application.FileDialog(msoFileDialogFolderPicker)
>
> With fDialog
> .Title = "Select folder and click OK"
> .AllowMultiSelect = False
> .InitialView = msoFileDialogViewList
> If .Show <> -1 Then
> MsgBox "Cancelled By User", , "Password"
> Exit Sub
> End If
> strPath = fDialog.SelectedItems.Item(1)
> If Right(strPath, 1) <> "\" Then strPath = strPath + "\"
> End With
>
> sPassword1 = InputBox("Enter Password to open Document")
> sPassword2 = InputBox("Enter Password to edit Document")
>
>
> On Error Resume Next
> Documents.Close SaveChanges:=wdPromptToSaveChanges
> FirstLoop = True
>
> strFileName = Dir$(strPath & "*.doc")
> While strFileName <> ""
> Set oDoc = Documents.Open(strPath & strFileName, _
> PasswordDocument:=sPassword1, _
> WritePasswordDocument:=sPassword2)
> If FirstLoop Then
> With ActiveDocument
> .Password = ""
> .WritePassword = ""
> End With
> FirstLoop = False
>
> Response = MsgBox("Do you want to process " & _
> "the rest of the files in this folder", vbYesNo)
> If Response = vbNo Then Exit Sub
> Else
> With ActiveDocument
> .Password = ""
> .WritePassword = ""
> End With
> End If
> oDoc.Close SaveChanges:=wdSaveChanges
> strFileName = Dir$()
> Wend
> End Sub
>
>
> --
> <>>< ><<> ><<> <>>< ><<> <>>< <>><<>
> Graham Mayor - Word MVP
>
> My web site www.gmayor.com
> Word MVP web site http://word.mvps.org
> <>>< ><<> ><<> <>>< ><<> <>>< <>><<>
>
>
>
> Bruce Bumbier wrote:
> > Hello, On June 9 you sent me a batch macro to remove the same
> > password from multiple Word documents. I typed it in Visual basic in
> > Word but I need to know where to insert the old password in the
> > macro, i.e. after .Password = "" or ?? I am not a programmer so this
> > is all "Greek" to me.

>
>
>

 
Reply With Quote
 
Graham Mayor
Guest
Posts: n/a
 
      17th Apr 2010
Steady!

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

My web site www.gmayor.com
Word MVP web site http://word.mvps.org
<>>< ><<> ><<> <>>< ><<> <>>< <>><<>


"poi" <(E-Mail Removed)> wrote in message
news:EE2809DD-6E03-4DAC-A532-(E-Mail Removed)...
>I think I may love you Graham! This has saved me!!!!
>
> "Graham Mayor" wrote:
>
>> If you copy and paste the macro from the message into into the vba
>> editor,
>> the macro when run prompts for the open and edit passwords. You don't
>> have
>> to edit the macro code. The passwords you enter are assigned to the
>> variables sPassword1 and sPassword2 and those passwords are used for all
>> the
>> documents. I did not include error trapping for missing or different
>> macros
>> which is why I said that it was intended to work with a set of files all
>> with the same macro. See http://www.gmayor.com/installing_macro.htm which
>> explains how to use and depoloy macro listings
>>
>> Public Sub UnPasswordAll()
>>
>> Dim FirstLoop As Boolean
>> Dim strFileName As String
>> Dim sPassword1 As String
>> Dim sPassword2 As String
>> Dim strPath As String
>> Dim oDoc As Document
>> Dim Response As Long
>> Dim fDialog As FileDialog
>>
>> Set fDialog = Application.FileDialog(msoFileDialogFolderPicker)
>>
>> With fDialog
>> .Title = "Select folder and click OK"
>> .AllowMultiSelect = False
>> .InitialView = msoFileDialogViewList
>> If .Show <> -1 Then
>> MsgBox "Cancelled By User", , "Password"
>> Exit Sub
>> End If
>> strPath = fDialog.SelectedItems.Item(1)
>> If Right(strPath, 1) <> "\" Then strPath = strPath + "\"
>> End With
>>
>> sPassword1 = InputBox("Enter Password to open Document")
>> sPassword2 = InputBox("Enter Password to edit Document")
>>
>>
>> On Error Resume Next
>> Documents.Close SaveChanges:=wdPromptToSaveChanges
>> FirstLoop = True
>>
>> strFileName = Dir$(strPath & "*.doc")
>> While strFileName <> ""
>> Set oDoc = Documents.Open(strPath & strFileName, _
>> PasswordDocument:=sPassword1, _
>> WritePasswordDocument:=sPassword2)
>> If FirstLoop Then
>> With ActiveDocument
>> .Password = ""
>> .WritePassword = ""
>> End With
>> FirstLoop = False
>>
>> Response = MsgBox("Do you want to process " & _
>> "the rest of the files in this folder", vbYesNo)
>> If Response = vbNo Then Exit Sub
>> Else
>> With ActiveDocument
>> .Password = ""
>> .WritePassword = ""
>> End With
>> End If
>> oDoc.Close SaveChanges:=wdSaveChanges
>> strFileName = Dir$()
>> Wend
>> End Sub
>>
>>
>> --
>> <>>< ><<> ><<> <>>< ><<> <>>< <>><<>
>> Graham Mayor - Word MVP
>>
>> My web site www.gmayor.com
>> Word MVP web site http://word.mvps.org
>> <>>< ><<> ><<> <>>< ><<> <>>< <>><<>
>>
>>
>>
>> Bruce Bumbier wrote:
>> > Hello, On June 9 you sent me a batch macro to remove the same
>> > password from multiple Word documents. I typed it in Visual basic in
>> > Word but I need to know where to insert the old password in the
>> > macro, i.e. after .Password = "" or ?? I am not a programmer so this
>> > is all "Greek" to me.

>>
>>
>>



 
Reply With Quote
 
poi
Guest
Posts: n/a
 
      20th Apr 2010

Okay, now that I have steadied myself I have a question about going further.

The documents are "read only", as the "read-only recommended" box is checked
in the security options of the documents. Is there a way to get rid of that
by macro? Did I do something wrong?
I am trying to change find/replace text in all of the documents but the
read-only is getting in the way.

thanks,
poi

"Graham Mayor" wrote:

> Steady!
>
> --
> <>>< ><<> ><<> <>>< ><<> <>>< <>><<>
> Graham Mayor - Word MVP
>
> My web site www.gmayor.com
> Word MVP web site http://word.mvps.org
> <>>< ><<> ><<> <>>< ><<> <>>< <>><<>
>
>
> "poi" <(E-Mail Removed)> wrote in message
> news:EE2809DD-6E03-4DAC-A532-(E-Mail Removed)...
> >I think I may love you Graham! This has saved me!!!!
> >
> > "Graham Mayor" wrote:
> >
> >> If you copy and paste the macro from the message into into the vba
> >> editor,
> >> the macro when run prompts for the open and edit passwords. You don't
> >> have
> >> to edit the macro code. The passwords you enter are assigned to the
> >> variables sPassword1 and sPassword2 and those passwords are used for all
> >> the
> >> documents. I did not include error trapping for missing or different
> >> macros
> >> which is why I said that it was intended to work with a set of files all
> >> with the same macro. See http://www.gmayor.com/installing_macro.htm which
> >> explains how to use and depoloy macro listings
> >>
> >> Public Sub UnPasswordAll()
> >>
> >> Dim FirstLoop As Boolean
> >> Dim strFileName As String
> >> Dim sPassword1 As String
> >> Dim sPassword2 As String
> >> Dim strPath As String
> >> Dim oDoc As Document
> >> Dim Response As Long
> >> Dim fDialog As FileDialog
> >>
> >> Set fDialog = Application.FileDialog(msoFileDialogFolderPicker)
> >>
> >> With fDialog
> >> .Title = "Select folder and click OK"
> >> .AllowMultiSelect = False
> >> .InitialView = msoFileDialogViewList
> >> If .Show <> -1 Then
> >> MsgBox "Cancelled By User", , "Password"
> >> Exit Sub
> >> End If
> >> strPath = fDialog.SelectedItems.Item(1)
> >> If Right(strPath, 1) <> "\" Then strPath = strPath + "\"
> >> End With
> >>
> >> sPassword1 = InputBox("Enter Password to open Document")
> >> sPassword2 = InputBox("Enter Password to edit Document")
> >>
> >>
> >> On Error Resume Next
> >> Documents.Close SaveChanges:=wdPromptToSaveChanges
> >> FirstLoop = True
> >>
> >> strFileName = Dir$(strPath & "*.doc")
> >> While strFileName <> ""
> >> Set oDoc = Documents.Open(strPath & strFileName, _
> >> PasswordDocument:=sPassword1, _
> >> WritePasswordDocument:=sPassword2)
> >> If FirstLoop Then
> >> With ActiveDocument
> >> .Password = ""
> >> .WritePassword = ""
> >> End With
> >> FirstLoop = False
> >>
> >> Response = MsgBox("Do you want to process " & _
> >> "the rest of the files in this folder", vbYesNo)
> >> If Response = vbNo Then Exit Sub
> >> Else
> >> With ActiveDocument
> >> .Password = ""
> >> .WritePassword = ""
> >> End With
> >> End If
> >> oDoc.Close SaveChanges:=wdSaveChanges
> >> strFileName = Dir$()
> >> Wend
> >> End Sub
> >>
> >>
> >> --
> >> <>>< ><<> ><<> <>>< ><<> <>>< <>><<>
> >> Graham Mayor - Word MVP
> >>
> >> My web site www.gmayor.com
> >> Word MVP web site http://word.mvps.org
> >> <>>< ><<> ><<> <>>< ><<> <>>< <>><<>
> >>
> >>
> >>
> >> Bruce Bumbier wrote:
> >> > Hello, On June 9 you sent me a batch macro to remove the same
> >> > password from multiple Word documents. I typed it in Visual basic in
> >> > Word but I need to know where to insert the old password in the
> >> > macro, i.e. after .Password = "" or ?? I am not a programmer so this
> >> > is all "Greek" to me.
> >>
> >>
> >>

>
>
> .
>

 
Reply With Quote
 
Graham Mayor
Guest
Posts: n/a
 
      21st Apr 2010
I answered this to your similar question in the vba forum you posted to and
provided code. That reply is below:

The following should work. If you have already removed the password(s),
leave the password prompts blank

Sub BatchProcess()
Dim strFileName As String
Dim strPath As String
Dim sPassword1 As String
Dim sPassword2 As String
Dim oDoc As Document
Dim fDialog As FileDialog
Set fDialog = Application.FileDialog(msoFileDialogFolderPicker)
sPassword1 = InputBox("Enter Password to open Document")
sPassword2 = InputBox("Enter Password to edit Document")
With fDialog
.Title = "Select folder and click OK"
.AllowMultiSelect = False
.InitialView = msoFileDialogViewList
If .Show <> -1 Then
MsgBox "Cancelled By User", , _
"List Folder Contents"
Exit Sub
End If
strPath = fDialog.SelectedItems.Item(1)
If Right(strPath, 1) <> "\" _
Then strPath = strPath + "\"
End With

If Documents.Count > 0 Then
Documents.Close SaveChanges:=wdPromptToSaveChanges
End If
If Left(strPath, 1) = Chr(34) Then
strPath = Mid(strPath, 2, Len(strPath) - 2)
End If
strFileName = Dir$(strPath & "*.doc")

While Len(strFileName) <> 0
Set oDoc = Documents.Open(FileName:=strPath & strFileName, _
PasswordDocument:=sPassword1, _
WritePasswordDocument:=sPassword2)
'
'Do what you want with oDoc
With oDoc
.Password = ""
.WritePassword = ""
.ReadOnlyRecommended = False
.Close SaveChanges:=wdSaveChanges
End With
strFileName = Dir$()
Wend
End Sub


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

My web site www.gmayor.com
Word MVP web site http://word.mvps.org
<>>< ><<> ><<> <>>< ><<> <>>< <>><<>


"poi" <(E-Mail Removed)> wrote in message
news:51BF61D0-FD9B-47C6-99EF-(E-Mail Removed)...
> Okay, now that I have steadied myself I have a question about going
> further.
>
> The documents are "read only", as the "read-only recommended" box is
> checked
> in the security options of the documents. Is there a way to get rid of
> that
> by macro? Did I do something wrong?
> I am trying to change find/replace text in all of the documents but the
> read-only is getting in the way.
>
> thanks,
> poi
>
> "Graham Mayor" wrote:
>
>> Steady!
>>
>> --
>> <>>< ><<> ><<> <>>< ><<> <>>< <>><<>
>> Graham Mayor - Word MVP
>>
>> My web site www.gmayor.com
>> Word MVP web site http://word.mvps.org
>> <>>< ><<> ><<> <>>< ><<> <>>< <>><<>
>>
>>
>> "poi" <(E-Mail Removed)> wrote in message
>> news:EE2809DD-6E03-4DAC-A532-(E-Mail Removed)...
>> >I think I may love you Graham! This has saved me!!!!
>> >
>> > "Graham Mayor" wrote:
>> >
>> >> If you copy and paste the macro from the message into into the vba
>> >> editor,
>> >> the macro when run prompts for the open and edit passwords. You don't
>> >> have
>> >> to edit the macro code. The passwords you enter are assigned to the
>> >> variables sPassword1 and sPassword2 and those passwords are used for
>> >> all
>> >> the
>> >> documents. I did not include error trapping for missing or different
>> >> macros
>> >> which is why I said that it was intended to work with a set of files
>> >> all
>> >> with the same macro. See http://www.gmayor.com/installing_macro.htm
>> >> which
>> >> explains how to use and depoloy macro listings
>> >>
>> >> Public Sub UnPasswordAll()
>> >>
>> >> Dim FirstLoop As Boolean
>> >> Dim strFileName As String
>> >> Dim sPassword1 As String
>> >> Dim sPassword2 As String
>> >> Dim strPath As String
>> >> Dim oDoc As Document
>> >> Dim Response As Long
>> >> Dim fDialog As FileDialog
>> >>
>> >> Set fDialog = Application.FileDialog(msoFileDialogFolderPicker)
>> >>
>> >> With fDialog
>> >> .Title = "Select folder and click OK"
>> >> .AllowMultiSelect = False
>> >> .InitialView = msoFileDialogViewList
>> >> If .Show <> -1 Then
>> >> MsgBox "Cancelled By User", , "Password"
>> >> Exit Sub
>> >> End If
>> >> strPath = fDialog.SelectedItems.Item(1)
>> >> If Right(strPath, 1) <> "\" Then strPath = strPath + "\"
>> >> End With
>> >>
>> >> sPassword1 = InputBox("Enter Password to open Document")
>> >> sPassword2 = InputBox("Enter Password to edit Document")
>> >>
>> >>
>> >> On Error Resume Next
>> >> Documents.Close SaveChanges:=wdPromptToSaveChanges
>> >> FirstLoop = True
>> >>
>> >> strFileName = Dir$(strPath & "*.doc")
>> >> While strFileName <> ""
>> >> Set oDoc = Documents.Open(strPath & strFileName, _
>> >> PasswordDocument:=sPassword1, _
>> >> WritePasswordDocument:=sPassword2)
>> >> If FirstLoop Then
>> >> With ActiveDocument
>> >> .Password = ""
>> >> .WritePassword = ""
>> >> End With
>> >> FirstLoop = False
>> >>
>> >> Response = MsgBox("Do you want to process " & _
>> >> "the rest of the files in this folder", vbYesNo)
>> >> If Response = vbNo Then Exit Sub
>> >> Else
>> >> With ActiveDocument
>> >> .Password = ""
>> >> .WritePassword = ""
>> >> End With
>> >> End If
>> >> oDoc.Close SaveChanges:=wdSaveChanges
>> >> strFileName = Dir$()
>> >> Wend
>> >> End Sub
>> >>
>> >>
>> >> --
>> >> <>>< ><<> ><<> <>>< ><<> <>>< <>><<>
>> >> Graham Mayor - Word MVP
>> >>
>> >> My web site www.gmayor.com
>> >> Word MVP web site http://word.mvps.org
>> >> <>>< ><<> ><<> <>>< ><<> <>>< <>><<>
>> >>
>> >>
>> >>
>> >> Bruce Bumbier wrote:
>> >> > Hello, On June 9 you sent me a batch macro to remove the same
>> >> > password from multiple Word documents. I typed it in Visual basic in
>> >> > Word but I need to know where to insert the old password in the
>> >> > macro, i.e. after .Password = "" or ?? I am not a programmer so
>> >> > this
>> >> > is all "Greek" to me.
>> >>
>> >>
>> >>

>>
>>
>> .
>>



 
Reply With Quote
 
 
 
Reply

Thread Tools
Rate This Thread
Rate This Thread:

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Attn: Graham Mayor - Callouts gordo Microsoft Word New Users 9 4th Feb 2008 05:57 PM
Dear Mr Graham Mayor =?Utf-8?B?TGVh?= Microsoft Word Document Management 2 25th Apr 2004 04:07 PM
Thank you Graham Mayor =?Utf-8?B?TGVh?= Microsoft Word Document Management 1 21st Apr 2004 05:01 PM
Re: Graham Mayor Website Suzanne S. Barnhill Microsoft Word New Users 0 6th Mar 2004 03:45 PM
Re: Graham Mayor Website Graham Mayor Microsoft Word New Users 0 6th Mar 2004 03:19 PM


Features
 

Advertising
 

Newsgroups
 


All times are GMT +1. The time now is 10:22 PM.