problem protecting word document by macro in excel

N

natanz

I keep a log of rfi's(requests for information) in excel. when i
answer them i open up a document from a template in word. i have been
working on automating this process. so far i have gotten to the point
where i can open a document in word, unprotect it, change some of it's
formfields and bookmarks. but now i am trying to reprotect it. So
here's my code:

Sub OpenTemplate(DocType As String) 'in this case it is "RFI Response"

Dim WordApp As Object
Set WordApp = Nothing
Dim worddoc As Object
Dim TemplateFile As String
Dim TemplateDir As String

'is this code doing what i want it to do, namely checking if there
is an open copy of MS
'word
On Error Resume Next
Set WordApp = GetObject("word.application")
If Err.Number <> 0 Then
Set WordApp = CreateObject("word.application")
End If
TemplateDir = "C:\Documents and Settings\My Documents\forms\"
TemplateFile = TemplateDir & DocType & ".dot"
WordApp.Documents.Add Template:=TemplateFile
Set worddoc = WordApp.activedocument

If DocType = "rfi response" Then
Call RFIInfo(worddoc)
End If

WordApp.Visible = True
End Sub


and then:

Public Sub RFIInfo(worddoc As Object)
worddoc.Unprotect
worddoc.Bookmarks("projname").Range.Text = _
ActiveWorkbook.Sheets("project info").Range("a7")
worddoc.Bookmarks("projnum").Range.Text = _
"FILE: " & ActiveWorkbook.Sheets("project
info").Range("b7")
With worddoc.FormFields("dropdown1").DropDown.ListEntries
.Add ("september")
.Add ("marching orders")
.Add ("Mr. Humboldt")
End With

'everything works exactly as i need until this last line:
worddoc.Protect Type:=wdAllowOnlyFormFields, noreset:=True
End Sub

so i think i may be doing a couple things wrong. I don't think i am
checking for an open copy of word exactly right, in my on error resume
next, but it is working.
i am also not sure i am passing the object variable worddoc with enough
information. Is it a problem that the variable worddoc has the same
name in both subs? I feel like it is not the same thing after it is
passed, maybe i should have a ByRef in there? Anyway, i am an
intermediate newbie at this, just kind of fumbling my way through. Any
suggestions about ways to make my code better, cleaner, more efficient,
etc. would be greatly appreciated.
 
N

natanz

on the protection part, i actually don't get any error, but the ms word
file does not change to a protected form either.

the code above all works, i don't get any errors.
 

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