Microsoft Word VBA (3)
Word Events
?/p>
Word
中只?/p>
Application object
?/p>
Document object
响应事件
:
Events With Application object
:
NewDocument, DocumentOpen,
DocumentBeforeClose, DocumentBeforePrint, DocumentBeforeSave
WindowActivate, WindowDeactivate, WindowSelectionChange,
WindowBeforeDoubleClock, WindowBeforeRightClick,
Quit
Events With Document object
:
New, Open, Close
此外,在
Document
上的
ActiveX Cobtrols
也响应事件?/p>
对每一
FormField
可以指定
On Entry
?/p>
On Exit
宏,相当?/p>
GotFocus
?/p>
LostFocus
事件过程。当然在
Word VB Project
中建立的
UserForms
?/p>
其上?/p>
Controls
也响应事件?/p>
Events: When you open a document
?/p>
Open
MyDoc1.doc
文档时,发生以下事件?/p>
1. Document_Open
2. App_DocumentChange :
3. App_DocumentOpen : C:\
?/p>
\MyDoc1.doc
如果
Order4.Doc
?/p>
AttachedTemplate
,则?/p>
Open
?/p>
Doc
时,发生以下事件?/p>
1. Template
?/p>
s Document_Open
?/p>
Doc
打开也触发模板的
Open
事件。)
2. App_DocumentChange (
如果这不是第一个打开的文档,发生
App_DocumentChange
事件
)
3. Document
?/p>
s Document_Open
4. App_DocumentOpen : C:\My Documents\Order4.doc
Events: When you close a document
?/p>
Close
文档时,发生以下事件?/p>
1. App_DocumentBeforeClose:C:\
?/p>
\MyDoc1.doc
2. Document_Close
3.
对话?/p>
Save Changes ?
4.
如果
Save
?/p>
App_DocumentBeforeSave :C:\
?/p>
\MyDoc1.doc
(如果不
Save changes
则不发生
App_DocumentBeforeSave
。)
如果
Order4.Doc
?/p>
AttachedTemplate
,则?/p>
Close
?/p>
Doc
时,发生以下事件?/p>
1. App_DocumentBeforeClose:C:\My Documents\Order4.doc
2. Template
?/p>
s Document_Close
?/p>
Doc
关闭也触发模板的
Close
事件。)
3. Document
?/p>
s Document_Close
4.
对话?/p>
Save Changes to .Doc ?
5. Yes:
App_DocumentBeforeSave: C:\My Documents\Order4.doc
6.
对话?/p>
Save Changes to .Dot ?
7. Yes: App_DocumentBeforeSave: C:\WINDOWS\
Application Data\Microsoft\Templates
\Order.
dot
8.
关闭
Word
文档窗口
注:如果你不希望
Save
模板(即使有
Changes
),可以在最后一?/p>
App_DocumentBeforeSave
事件
之前,例如在
Template
?/p>
s Document_Close
事件里,执行以下语句?/p>
ActiveDocument.AttachedTemplate.Saved = True
(不要用
DocumentBeforeSave
事件里的
Cancel=True
,
它不关闭
.Doc
窗口。)