《excel_vba_编程教程(完整版)》

下载本书

添加书签

excel_vba_编程教程(完整版)- 第63节


按键盘上方向键 ← 或 → 可快速上下翻页,按键盘上的 Enter 键可回到本书目录页,按键盘上方向键 ↑ 可回到本页顶部!
时,你可以明确文件过滤器和对话框自定义标题:  
yourFile    =   Application。GetSaveAsFilename(“Plan2。xls”;    〃Excel    Files(*。xls);  
*。xls〃;;〃Name your file〃)   
要显示另存为对话框的话,就要将GetSaveAsFilename方法的结果赋予一个变量,如上所示。  

3。创建窗体  

尽管内置的对话框很方便使用,但是它并不能满足你所有的VBA应用程序的要求。除了将对话框显 
示在屏幕上和初始化它的设置之外,你不能控制对话框的外观,你不能决定增加哪个按钮,删除哪 
个按钮,而哪个又移动,同样,你不能改变内置对话框的大小。如果你想用提供一个自定义的界面 
的话,那么你的唯一办法就是创建一个用户窗体。  
用户窗体看上去就像一个自定义对话框,你可以在上面添加各种各样的控件,给这些控件设置属性 
以及编写对窗体反应的VBA过程和控制事件。窗体是单独的对象,你可以在VB编辑器菜单里选择“插 
入”|“用户窗体”来添加窗体。  
窗体可以在不同的应用程序之间分享使用,例如,你可以在Word或者任何其它使用VB编辑器的应用 
程序里面,重新使用Excel里设计的窗体。  
按照下述步骤创建自定义窗体:  
* 切换到VB编辑器窗口  
* 选择“插入”|“用户窗体”  
一个叫做窗体的文件夹显示在工程浏览器窗口,该文件夹包含一个空白用户窗体。工作区域自动显 
示窗体和带有添加控件的工具箱。   

                                          188 

… 页面 205…

                                                                                       
图10…7 通过选择插入菜单里面的用户窗体可以添加一个新的窗体到活动VBA工程  
属性窗口(见图10…8)显示很多种属性,你可以根据你的需要进行设置。该窗体属性安排成七个类 
别:外观,行为,字体,杂项,图片,位置和滚动。要按类别显示窗体属性的话,那么可以点击属 
性窗口上的“按分类序”。要查找某特定属性的信息的话,可以点击该属性名称并且按下F1键,在 
线帮助将启动该属性描述主题。在你的VBA工程里添加新窗体后,你应该通过设置“名称”(Name) 
属性给该窗体设置一个独特的名称,除了名称之外,每个窗体还应该包含一个标题,你可以使用 
Caption属性给你的窗体设置标题。  
技巧10…1 在VBA应用程序之间共享窗体  
所有使用VB编辑器的VBA应用程序在创建自定义窗体时共享一些功能特点,你可以通过从文件中导 
出和导入,或者通过拖曳窗体对象到另一个工程来共享你的窗体。要导入或者导出窗体文件,可以 
选择“文件”|“导入”或者“文件”|“导出”。在你导出某个窗体文件之前,确保你在工程浏览 
器窗口里选中了该窗体。在将窗体拖曳到一个不同的VBA应用程序之前,你得安排好VBE窗口,确保 
你能同时看到两个应用程序的工程浏览器窗口,拖住工程浏览器里的窗体名称到另外一个工程浏览 
器。  

                                          189 

… 页面 206…

                                                  
图10…8 使用属性窗口,你可以很容易地更改你自定义窗体的外观,行为和其它特点  

4。创建用户窗体的工具  

当你设计一个窗体时,你可能要插入一些合适的控件来使它有用。工具箱包含了标准VB所有你可以 
添加到窗体上的控件按钮,它也可以包含已经安装在你电脑上的额外的控件。工具箱可用的控件被 
称为ActiveX控件,这些控件能够对特定的用户行为例如点击该控件或改变它的制作出反应。你将 
在本章剩余的部分学习如何使用工具箱控件。  

                                                     
图10…9 工具箱显示了可以添加到你的自定义窗体的控件(译者:在每台电脑上的工具箱上显示控 
件可能不一样,可以通过“附加控件”在工具箱上添加额外的控件按钮)  
Microsoft Office套装提供了额外可以放置在工具箱上以快速访问的ActiveX控件,如果你的电脑 
上还安装了其它包含ActiveX应用程序的话,那么你也可以将它们放置在工具箱上。依照下述步骤 
在工具箱上添加其它的ActiveX控件:  
1。 在工具箱上(非控件区域)单击右键并且点击“新建页”,并且选择重命名  
2。 在“题注”框里面输入新名称“额外控件”,在“控件提示文字”框里面输入“额外的ActiveX 
    控件”,点击确定返回到工具箱  
3。 在新页的任意地方单击右键,并从快捷菜单中选择“附加控件”。如果该选项不可用的话,那么 
    确定你在该页区域单击右键,而不是点击“额外控件”本身  
4。  当附加控件对话框出现时,点击你要添加的每个控件前面的选项按钮。图10…10显示了加亮的日 
    历控件。当你点击确定时,这个控件就会出现在工具箱的当前页上  

                                          190 

… 页面 207…

                                                                     
图10…10 你在工具箱上附加额外安装在你电脑上的ActiveX控件  
在接下来的几段中将描述标准的VB控件。  

5。标签  

标签允许你在窗体上添加文本,标签控件经常用来添加字幕,标题,抬头和解释。你可以使用标签 
给那些不带Caption属性的控件(例如文字框,列表框,滚动条和旋转按钮)加上标题。你可以给 
标签定义快捷键,例如,在添加完标签控件和设置它Accelerator属性后,通过按下Alt键和某个特 
定字母键,你就可以立即激活该控件(译者:激活标签控件后面的控件,例如文字框,列表框等。 
这是一个非常有用的工具!)。要给某个已经存在的控件添加一个标题或者一个键盘快捷键的话,你 
就应该添加一个标签控件,并且在它属性窗口的Accelerator属性里输入一个字母。下一步选择“视 
图”|“Tab键顺序”,并且确保该标签名称出现在你要使用快捷键激活的控件名称之前。你将在本 
章后面学习如何使用Tab键顺序对话框(参见图10…14)  

6。文字框  

文字框是最流行的窗体控件,因为它们可以用来显示或者从用户处获取数据。你可以在文字框里输 
入文本、数字、单元格引用或者公式。通过更改MultiLine属性设置,你可以在文字框里输入一行 
以上的文本。当你设置了WordWrap属性时,文本行可以自动换行。此外,如果你将EnterKeyBehavior 
属性设置为True,同时MultiLine属性也为真的话,那么你将能够在文字框里面通过按下回车键开 
始新的一行。另外一个属性EnterFieldBehavior,决定当用户选择文本区域时是否选择文本(译者: 
应 该 说 激 活 该 控 件 , 例 如 说 使 用 Tab 键 来 激 活 文 字 框 。), 设 置 该 书 写 为 0 
 (fmEnterFieldBehaviorSelectAll)的话,将会选择该区域的所有文本,设置该属性为1 
 (fmEnterFieldBehaviorRecallSelection)的话,将仅仅选择用户上次激活该区域时选择的文本。 
如果你想要限制用户在文字框输入字符数的话,那么你可以设置MaxLength属性的字符确切数目。  

7。框架  

框架允许你可视地组织和逻辑地聚合窗体上面的各种控件。当你使用框架控件包围选项按钮时,VB 
将这些按钮视为相互排斥的,你同时只能选择其中的一个按钮,因此,如果用户选择了可用的选项 
按钮之一i,那么其它的选项按钮就不能再被选择。在本章的后面,你将找到使用两个框架的“信 
息调查”窗体示例。其中一个将“硬件”和“软件”选项按钮组织成一个逻辑化的集合,而第二个 
框架则将和电脑类型相关的复选框集中到一起(参见图10…11)。  

8。选项按钮  

选项按钮让你在许多相互排斥的选项中选择一个,选项按钮通常以两个或者多个按钮组织在一起并 
且包围在一个框架之内。在任何时刻,只能选择一个选项按钮。当你选择一个新选项按钮,之前被 
选择的选择按钮就会自动取消选定。要激活或者失活一个选项按钮的话,只要将它的Value属性设 
置为True或者False。True意味着该选项被激活,False则意味着该选项失活。  

                                             191 

… 页面 208…

9。复选框  

复选框用来将具体的选项打开或者关闭,不同于选项按钮只让你同时选择一个选项,用户可以同时 
选上一个或者多个复选框。如果复选框被选择,那么它的Value属性就设置为True,如果复选框没 
有被选择,那么它的Value属性则设置为False。  

10。切换按钮  

切换按钮看上去像命令按钮,而作用与选项按钮类似。当你点击切换按钮时,该按钮会保持凹下去, 
如果再点击一次的话,按钮则恢复正常。按下的切换按钮的值属性为True。  

11。列表框  

除了可以使用文字框提示用户输入明确的数据之外,有时候提供一个可供选择的清单可能会更好, 
列表框排除了输入错误数据的可能性。列表框的内容可以在工作表中敲入,也可以直接从VBA过程 
里使用AddItem方法添加。RowSource属性指定显示在列表框里面的数据源,例如引用A1:B8, 
列表框里将显示这些区域里的内容。  
当你设置ColumnCount属性时,列表框可以显示一列或者多列数据。另外一个属性,ColumnHeads, 
可以设置为True,显示列表框的列标题。用户也没有限制只选择一个选项,如果过程需要选择两个 
或者多个列表项目的话,你也可以设置MultiSlect属性为True。  

12。复合框  

复合框是一个结合文字框和列表框在一起的控件,该控件经常用来节省窗体上的空间。当用户点击 
复合框右边的下拉箭头时,它会打开显示一系列可供选择的项目。如果里面没有一个适用的选项的 
话,你可以将MatchRequired属性设置为False,这样就允许用户直接输入一个新的数据。ListRows 
属性决定了下拉清单出现时,显示的项目数。Style属性决定了复合框的类型。使用0 
 (fmStyleDropDownbo)可以允许用户从清单里选择一项或者在文字框里输入一新项。如果要限 
制 用 户 的 选 择 只 能 在 该 复 合 框 的 可 用 清 单 里 的 话 , 那 么 就 将 Style 属 性 设 置 为 2 
 (fmStyleDropDownList)。  

13。滚动条  

你可以在窗体上放置水平的或者竖直的滚动条。尽管滚动条通常使用于定位窗口,但是它也可以用 
在你窗体上来输入一些预设范围的数值。滚动条的当前值由Value属性设置或者返回。滚动条的Max 
属性让你设置它的最大值,而Min属性则决定了它的最小值。LargeChange属性决定了当用户点击滚 
动条内部时Value属性的改变值。同样,当使用滚动条
小提示:按 回车 [Enter] 键 返回书目,按 ← 键 返回上一页, 按 → 键 进入下一页。 赞一下 添加书签加入书架