当您在Word中打开文档时,该文档的文件名将显示在标题栏中。有时,最好在标题栏中显示多个简单文件名。许多读者可以通过在标题栏中显示完整的路径名和文件名来获利。不幸的是,Word没有提供轻松实现此目的的方法。

(毕竟,为此选项包括一个复选框有多困难?)

有两种方法可以解决此问题。如果您只需要偶尔知道完整的路径名,则可以创建一个非常简单的宏并将其分配给工具栏按钮。当您单击按钮时,活动窗口标题栏中的信息将更改为反映完整路径名。此宏称为ChangeCaption,如下所示:

Sub ChangeCaption()

ActiveWindow.Caption = ActiveDocument.FullName End Sub

同样,此宏非常适合偶尔使用。如果需要,还可以将此宏重命名为AutoOpen,然后所有文档在打开时将显示完整路径名。但是,此选项有两个缺点。每当使用“另存为”将文件重命名为其他名称时,除非重新运行宏,否则标题栏中的新文件名(和路径)都不会更新。其次,如果您打开了病毒检查功能,则它可能会将宏(分配给AutoOpen)解释为宏病毒试图破坏您的系统。

有一种方法可以创建更全面,更自动的方法。为了自定义Word以包括完整的路径名,有必要了解Word使用的接口类型。 Word是一个多文档界面(MDI)应用程序。这意味着主应用程序窗口(对于Word)是父应用程序窗口,并且该窗口可以包含每个打开的文档的文档窗口(子窗口)。当文档窗口最大化时,Word的标题栏将显示应用程序标题(Microsoft Word)和文档文件名的组合。如果文档以部分屏幕或最小化状态显示,则父窗口仅显示应用程序名称(Microsoft Word),每个子窗口均显示该窗口中包含的文档标题。因此,所有需要更改的是子窗口标题栏,以包括带有文件名的路径。

全面的方法依赖于Word应用程序事件的使用。

本质上,用于完成此方法的步骤如下:

。设置Word触发应用程序事件(它们内置于Word中,但不会自动发生)。

。为DocumentChange事件编写一些实际的标题栏更改代码。

一旦设置好DocumentChange事件,几乎在每次用户激活子(文档)窗口时都会发生。您会注意到我说“差不多”。

这是因为如果子窗口是打开的文档的重复窗口(例如,从“窗口”菜单中选择“新建窗口”时获得的窗口),则不会触发该事件。实际上,这是同一文档的两个视图,因此从一个视图切换到另一个视图时,文档没有更改。因此,如果打开了一个文档,并且用户打开了同一文档的新窗口,则它不会自动通过DocumentChange事件中运行的代码来更改其标题栏。但是,如果用户从其他包含不同文档的其他子窗口切换到“新窗口”视图,则以后将进行更改。

第二个问题是保存新文档时也不会触发DocumentChange事件。因此,如果保存了未保存的文档(如Document1,Document2等),则直到焦点从新保存的文件中移出并返回之前,标题栏才会更改。幸运的是,这可以解决。

然后,第一步是激活Word应用程序事件。您可以按照以下步骤进行操作。 (此处的示例未包含在_WordTips_ CD-ROM中。但是,可以按照概述的步骤轻松创建它们。)

。启动Word,然后关闭所有打开的文档。

。按ALT + F11以启动Visual Basic编辑器。编辑器的标题栏应显示“ Microsoft Visual Basic-普通”。这意味着您正在处理“普通”模板项目。

。从插入菜单中选择类模块。这会向项目中添加一个类模块,通常命名为Class1,Class2等。

。使用“属性”窗口(在编辑器的左下角),将新类模块的名称更改为AppEvents。

。在编辑器窗口中,键入或粘贴以下内容:

。从插入菜单中选择模块。这会将常规模块添加到项目中,通常命名为Module1,Module2等。

。使用“属性”窗口(在编辑器的左下角),将新模块的名称更改为MyModule。 (如果需要,可以使用其他名称。如果确实要更改名称,则还需要在上面的步骤5中更改MyModule引用。)

。在编辑器窗口中,键入或粘贴以下内容:

注意:

如果您想知道如何使用此页面(或_WordTips_网站上的任何其他页面)中描述的宏,我准备了一个包含有用信息的特殊页面。

_WordTips_是您进行经济有效的Microsoft Word培训的来源。

(Microsoft Word是世界上最流行的文字处理软件。)本技巧(1248)适用于Microsoft Word 97、2000、2002和2003。