对话框和自定义窗体 在第四章,你学习了如何使用Excel内置的InputBox函数在VBA过程执行期间从用户处收集单一数据。但是,万一你的程序在运行时需要多个数据怎么办呢?用户也许希望一次就提供所有数据,或者从项目清单中作出所有合适的选择。如果你定程序必须收集数据的话,那么你可以: • 使用内置对话框集合 • 创建一个自定义窗体 本章将教你如何从VBA过程里显示内置的对话框,以及从零开始设计你自己的自定义窗体。 Excel对话框 在开始创建自己的窗体之前,你应该花上一些时间学习如何利用Excel内置的对话框,这些内置对话框本来就是为我们准备的。我讲的不是手动选择适合的选项,而是从你自己的VBA过程里调用这些对话框。 Excel 有 一个 特 殊 的内置对话框集合 ,它 们 用开 头 为 xlDialog 的常 量 表示 ,例如xlDialogClear,xlDialogFont,xlDialogDefineName和xlDialogOptionsView。这些内置对话框是Excel对象,属于内置Dialos集合,每个dialog对象代表一个内置对话框。 表10-1 常用的内置对话框 对话框名称 常量 新建 xlDialogNew 打开 xlDialogOpen 另存为 xlDialogSaveAs 页面设置 xlDialogPageSetup 打印 xlDialogPrint 字体 xlDialogFont 按照下述格式使用Show方法来显示对话框: Application.Dialogs(常量).Show 例如,下面的语句显示字体对话框: Application.Dialogs(xlDialogFont).Show 如果你在对象浏览器里面选择Excel库后,再 输 入 xlDialog搜 索 的话,那些代表Excel内置对话框的常量清单就会 显示在对象浏览器里面了( 参 见 图 10-1) 1. 打开一个新工 作簿 并 且 保 存为Chap10.xls 2. 切 换 到 VB编 辑 器窗口 3. 打开立 即 窗口 4. 输 入 下述语句并 查 看 结 果: Application.Dialogs(xlDialogClear).Show Application.Dialogs(xlDialogFont).Show Application.Dialogs(xlDialogFontProperties).Show Application.Dialogs(xlDialogDefineName).Show Application.Dialogs(xlDialogOptionsView).Show 最后一句指令显示“选项”对话框的“视图”。显示内置对话框后,你可以选择合适的选项,然后Excel就会将当前被选择的单元格,区域或者整个工作表设置相应的格式。 尽管你不能更改内置对话框的外观和行为,但是当你从你的VBA过程显示内置对话框的时候,你可以决定它的初始设置。如果你不更改初始设置,那么VBA将显示对话框...