修改打开对话框的行为(Microsoft Word)
Bronwyn问是否有一种方法可以强制“打开”对话框保持可见状态,以便可以连续打开多个文件。尽管可以使用“打开”对话框同时打开多个文档,但这不是Bronwyn想要做的。
一种解决方案(仅与Word切线相关)是使用文件资源管理器(Windows 10)或Windows资源管理器(Windows的早期版本)
显示文件夹中的文件。打开一个显示所有文档文件的资源管理器窗口。然后,您可以双击文件,或创建一组选择的文件,然后右键单击它们并选择“打开”。该窗口一直可用,您不必担心重复显示“打开”对话框。
如果您希望直接在Word中使用解决方案,只需记住Word是非常可配置的,这意味着您几乎可以更改程序的每个方面。这包括“打开”对话框的行为。您需要做的就是为FileOpen命令创建一个替换,如下所示:
Public Sub FileOpen() Dim err_handler On Error GoTo err_handler With Dialogs(wdDialogFileOpen) .Name = "." Do While .Show <> 0 .Name = "." Loop End With Exit Sub err_handler: If Err.Number = 5174 Then MsgBox "You can open only one file at a time.", vbCritical Resume Next Else MsgBox Err.Number & vbCrLf & Err.Description, vbExclamation End If End Sub
使用此宏后,只要Word显示“打开”对话框,它都会使用“所有文件”作为指定的文件类型。然后,您可以选择一个文件,对话框将再次打开以等待您的下一个选择。如果在对话框上单击“取消”,则命令结束,您可以在Word中开始其他任务。
打开对话框的实现与Word正常显示的实现之间有区别。在Word中,可以在“打开”对话框中创建一个“选择集”,以便可以同时打开多个文件。当使用wdDialogFileOpen对话框时(就像您为Open命令创建自己的替换时一样),一次只能选择一个文件。对于Bronwyn来说,这似乎不是一个大问题,但对于其他用户而言,这可能是一个问题。
如果必须保留一次打开多个文件的功能,则可以执行命令栏控件。但是,在执行命令栏控件时,您无法测试是否有人单击“取消”。因此,您需要另一种摆脱循环的方法。在以下例程中,您可以选择/打开多个文件,但是您还必须响应对话框以退出显示对话框的循环。
Sub GetNewFiles() Dim Response Do While Response <> vbNo CommandBars("Standard").Controls("&Open...").Execute Response = MsgBox(Prompt:="Open another file?", Buttons:=vbYesNo) Loop End Sub
注意:
如果您想知道如何使用此页面(或_WordTips_网站上的任何其他页面)中描述的宏,我准备了一个包含有用信息的特殊页面。
_WordTips_是您进行经济有效的Microsoft Word培训的来源。
(Microsoft Word是世界上最流行的文字处理软件。)本技巧(12357)适用于Microsoft Word 2007、2010、2013、2016、2019和Office 365中的Word。 Word的旧菜单界面在这里: