WORKAROUND
Microsoft provides programming examples for illustration only, without warranty either expressed or implied. This includes, but is not limited to, the implied warranties of merchantability or fitness for a particular purpose. This article assumes that you are familiar with the programming language that is being demonstrated and with the tools that are used to create and to debug procedures. Microsoft support engineers can help explain the functionality of a particular procedure, but they will not modify these examples to provide added functionality or construct procedures to meet your specific requirements.
To work around this problem, you can use the
OnTime method in one macro to
call another macro that then issues the
Close method for your protected
form.
The
OnTime method uses the following syntax:
expression.OnTime(When, Name, Tolerance)
Because the
Name argument requires the name of a macro to run, you must
create two macros. The first macro, "MacroToRunOnExit," runs when you quit
a form field. It calls the second macro, "CloseDocument," which closes the
document.
NOTE: When you use this method, you can only use the
wdDoNotSaveChanges
constant for the
Close Method.
Public Sub MacroToRunOnExit()
Application.OnTime When:=Now, Name:="CloseDocument"
End Sub
Public Sub CloseDocument()
Application.ActiveDocument.Close(wdDoNotSaveChanges)
End Sub
To save the document before you close it, add the
Save command before the
Close command:
Public Sub CloseDocument()
Application.ActiveDocument.Save
Application.ActiveDocument.Close(wdDoNotSaveChanges)
End Sub
For more information about OnTime method, in the Visual Basic Editor, click
Microsoft Visual Basic Help on the
Help menu, type
OnTime method in the Office Assistant or the Answer Wizard, and then click
Search to view the topic.
For information about how to do this in earlier versions of Word with WordBasic, please see the following article in the Microsoft Knowledge Base:
126366
WD: FileClose in Macro Doesn't Work with Protected Form