标签:
杂谈 |
用VBA代码编辑器绘制用户窗体
由七个部分组成
学习如何借助用户窗体在VBA中创建自己的自定义对话框。这是该系列的第一部分(其他部分是写代码的用户窗体和创建高级控制)。
-
VBA用户窗体简介(本文)
- 在VBA中创建和使用用户窗体
- 属性窗口
- 选择窗体和控件
- 格式化窗体和控件
- 分组,对齐,调整大小,间距和排列
- 控制是如何形成键的作用
这个博客是我们的一部分,Excel的VBA系列教程。我们还运行在Excel培训课程和在VBA课程。
什么是用户窗体
一个用户窗体(或只是形式)就是您自己创建一个对话框。就像这样:
当然,我们可以通过添加一些控件和格式使之更为个性,就像这样:
这是我们要做的办公室饮料预定窗体。
用户窗体不限于Excel中:Word,PowerPoint和SharePoint Designer都可以使用相同的程序创建(而Access和Outlook,通常情况下,也可以通过自带的程序做到)。
用户窗体的优点和缺点
你应该学习如何创建和使用用户窗体?在学习之前我们先了解一下用户窗体的优缺点,这是优点:
优点 | 笔记 |
---|---|
印象深刻 | 自定义窗体带有的下拉列表,命令按钮,图片和格式化更能打动客户或经理。 |
易于使用 | 对于那些不喜欢直接在Excel表格中输入数据的用户,您可以通过创建窗体,使很大操作更为简单。 |
这些都是强大的优势; 硬币的另一面怎么样?
坏处 | 笔记 |
---|---|
验证数据 | 创建用户窗体是容易的; 但确保用户输入的数据是否正确,需要更长的时间。在工作表中,您可以像使用数据验证和保护工具,确保用户输入正确的数据类型,但在窗体中你将不得不更加努力,以避免错误。 |
偶尔抽风 | 我从多年的Excel和书写系统培训的经验是,用户窗体偶尔崩溃 -当 Excel本身却很少。 |
现在你知道什么是窗体了,让我们来看看如何创建一个,如何并用宏来运行它。
2、在VBA中创建和使用用户窗体
创建一个窗体
在VBA中创建一个用户窗体很容易
右键单击一个项目/工作簿,然后选择显示插入一个用户窗体的选项。
你将被示以一个长方形的窗体,您可以拖拉右下角来调整大小:
单击并拖动右下角来调整用户窗体 - 它将始终出现在代码编辑器窗口的左上角。
就像宏,一个用户窗体存储为一个工作簿的一部分,而不是一个单独的文件。
控件
您添加到用户窗体的东西被称为控件。下面简单的窗体有3个控件:
1个标签,1个文本框和1个命令按钮。
下面饮品订购窗体已超过10控件:
这种相对简单的窗体包括:
- 1个图像
- 3个标签
- 2个文本框
- 1个组合框
- 1个滚动条
- 2个按钮
- 1个框架
在这个系列后来的博客展示了如何添加一些更深奥的控制 - 现在,我们介绍一般原则。
2、在窗体上绘制控件
您可以使用工具箱绘制绘制窗体上的任何控件:
表格工具箱
你可以让你的鼠标徘徊在每个控件上,看看它是什么:这是标签控件被选中。
当你打开一个表格,如果您看不到工具箱窗口,请尝试在这里单击工具箱:
一旦你选择了你的控制工具,您可以单击并拖动到窗体上的任何位置:
在这里,鼠标指针显示你正在绘制一个
在选定的位置上只需点击Excel(和任何其他应用程序一样)就会绘制具有标准尺寸和形状的控件。
经学会了如何绘制控件,让我们继续前进,以如何展示自己
3、属性窗口
如果你在设计表格需要花很多的时间,你需要属性窗口永久可见:
在
显示属性窗口
您可以使用菜单显示属性:
选择菜单选项的属性窗口来显示。
或者,您也可以按F4键或单击该工具:
单击该工具
按字母排序或按分类排序属性
您可以从显示的列表中从A到Z或者分类选择您需要的属性,通过单击属性窗口的顶部:
我不知道我有什么建议,但这个博客的其余部分将始终使用分类(或者应该被分类的?)视图。
已经学会了如何显示属性,您接下来需要学习如何选择控件。
4、选择窗体和控件
要格式化一个窗体上的任何控件,您首先需要知道如何选择它/它们。我们首先看一下选择一个控制,然后看看如何来同时选择多个的控件(本博客的下一部分将会学习如何格式化控件和窗体)。
选择一个单一的控件
要改变单一控件,请单击以选中它,然后使用属性窗口:
任何控制,以显示其属性右键单击,如下图所示,如果他们不是已经可见(前面已经提到过,您也可以按F4键
或者,您也可以在属性窗口本身选择控件:
点击下拉箭头,选择要更改属性的控件。
选择多个控件
有几种方法可以同时选择多个控件。最简单的方法可能是用鼠标左键:
单击并拖动窗体上绘制一个矩形,并确保你开始位置在空白区。这个矩形接触或包围的控件将被选中。这个例子会选取了3个控件。
或者,您可以使用SHIFT键或CTRL
在这个例子中,如果你点击[确定]
-
用CTRL
键不放,它会添加到当前选择的按钮; -
用SHIFT
键不放,就会添加按钮和文本框(因为是文本框在标签和按钮前加入,从而谎言“之间”)。
或者,您可以按CTRL
主导控件
如果选择多个控件,有一个(也是唯一一个)控件周围会出现白色的方框; 而其他的是黑色。这个白色的方框的选择被称为主导控件:
这里的标签Name:
这句话的意思是,如果你调整多个选定控件的大小或对齐时(本博客后面会提到),将以主导控件作为参照:
上图所示为左对齐的结果。向红线对齐,因为这是主导控件的左边缘。
选择整个窗体
如果你想为一个窗口(如它的名称)更改属性,你需要选择它:
单击窗体上其他控件以外的的任意位置,选择窗体,如下图所示。
现在,你知道如何选择一个窗体或其控件,是时候来看看如何格式化它/它们。
格式化窗体和控件
您可以通过选择它/它们(如本博客的前面部分所示),然后按如下所示更改属性格式化形式或任何其控制。
窗体标题
要改变窗体的标题:
要改变窗体的标题:
- 确定要显示的标题。
- 在caption属性键入(真奇怪!在键入的同时我们可以看到窗口的标题会随着改变)。
改变背景和前景颜色
您可以选择控件(S)或窗体本身来改变其颜色:
更改:
-
背景色属性;
或 - 前景色属性
如下图所示。
当改变颜色属性,一定要使用的调色板的颜色或系统的颜色:
选择
设置控件的背景色为透明的方式略有不同:
更改背景样式控件的(BackStyle)属性为透明,这样控件就会和整个窗体的颜色一致。
字体
更改控件的不理想的初始字体:
单击
字体对话框的出现使一切变得简单:
唷!这个现在看起来很熟悉。
控件文本的水平对齐
在下面的窗体中,选定标签右对齐水平:
默认的对齐方式为左对齐,已经有人已经改变了这些控件。
要更改水平对齐方式,你可能会期待有这样的工具:
应该有这样的工具。他们在哪里?
没找不到,对齐属性也没有呀?这是文本对齐TextAlign(当然!),就是它:
该
控件文本的垂直对齐
一个控件文本的垂直对齐文本也很简单 - 这一点在用户窗体里可能用不到!
如果你想要的标题出现在文本框的垂直中心,你只能在文本的前面按Enter键
窗体内居中对齐
在下面的命令按钮在窗体内水平居中对齐:
Order按钮水平居中。
要做到这一点,选择相关的控件,然后选择下列选项之一:
设置的控件的边框
您可以设置控件的边框的颜色和厚度:
这种控制有一个黑色的边框。
要做到这一点,设置如下所示的两个属性:
如果没有设置边框的样式,也就不用设置边框的颜色了。
这四个属性你可能不必更改
有一些属性我认为你不应该改变!
该图片属性允许您在窗体上设置背景图片,但他们总是掩盖的内容。你可以平铺,拉伸和缩放照片,但最好删除它们!
您可以设置滚动条属性为水平,
窗体的初创位置属性start-up position property,但最明智的位置似乎是在其所属程序(即Excel表格)的中间,这是默认的,如下图所示。
窗体的模块属性:如果你设置为假,用户可以忽略窗体并单击操作Excel表格,这可能不是一个好主意。
现在,我们已经学习了格式化的窗体和单独的控件,让我们继续学习格式化多个控件:即多个控件的对齐,大小,间距和分组控制。
6、分组,对齐,调整大小,间距和排列
在前面我们学习同时选中多个控件时提到,带有白色小方块的主导控件(以及这意味着什么)。在这里我们学习多个控件的对齐,大小,间距和分组控制。
控件间的对齐
要对齐控件,请选择它们,然后选择下图所示,鼠标右键选项:
在这里的Name:标签是占主导控件,这样选择左对齐(如图所示)时,选定的控件会向它的左边缘对齐。
均分控件的水平或垂直间距
在下面的表格中,各控件需要平均分部:
在这种情况下,控件间隔等距会更好看。
要做到这一点,选择控件如图所示,然后选择此处显示的菜单选项之一:
在这个实例中所示的选项就是我们想要的。
请注意,在这种情况下,你将不得不对文本框/组合框做同样的事情,让他们以同样的方式排列。
使控件大小一致
以下是如何获得2个或多个控件具有相同的大小或宽度:
选择控件,然后在其中一个右键单击并选择此处显示的菜单选项。Drink组合框是主导控制,所以另外两个选定的控件将被调整为和该控件相同的宽度。
分组控件
在你设计的窗体中有些部分,作为一组是非常有用的,使它们就像一个单一的控件:
在这里,我们希望将所有框架中的控件组合到一起,这样我们就可以作为一个整体来移动操作。
做到这一点的方法是选择所有控件并将它们组合在一起的:
http://s7/middle/001PLqnDzy6IbdfkIHIb6&690 | http://s5/middle/001PLqnDzy6IbdflUUI04&690 |
这样来组合控件... | ......选择时会成为一体。 |
即使控件组合在一起,你仍然可以在组内分别格式化单个控件,让您两全其美。
可以以同样的方式取消组合:
在分组组控件单击鼠标右键并选择取消组合如下所示。
使用框架组合控件
另一种组合方式是通过创建一个框架。首先剪切你希望出现在框架上的控件:
选择要组合在一起的控件,并剪切他们到剪贴板。
点击框架Frame工具,并用它来 绘制一个矩形:
点击该工具,并绘制你的框架的矩形。
现在,您可以删除该框架的标题,并粘贴控件:
删除 Frame1的标题(在其Caption属性中
结果:无论该框架去哪里,其中的控件也会跟随:
当您移动框架时,其中的控件也随之移动。
你可以设置框架边框属性为
7、怎样用快捷键控制窗体
我们已经知道了如何格式化表格,我们现在学习在窗体内使用快捷键,以及输入,Tab键
控制Tab键顺序
当你按下Tab键
当你按下Tab键
可以在窗体、框架或者
选择窗体、框架或者
-
如果您已经选择了窗体,你会看到窗体上的顶级控件;
- 如果您(此例)选择了一个框架,你会看到框架内的控件。
如果你选择了框架或者多页,你只会看到一些窗体的控件:
因为你选择了一个框架,你只能在框架内的控件的Tab键顺序。
很奇怪的是Tab键顺序包括标签控件,实际上由于这些控件不能接收焦点(你不能点击它们),故而与Tab键顺序无关。接下来我们来看看怎样让标签的快捷键出现在
快捷键
在下面的窗体,你可以按ALT
带下划线的字母
您只能将快捷键连接到标签,而不能连接文本框或组合框。当你按下会发生ALT
Drink:组合框是lblDrink标签后的第一个控件且可以接收焦点(比如,您可以单击进入)。
至于你如何安装快捷键 - 这是很容易的:
在Accelerator属性中输入一个字母。
默认按钮(回车键)
当窗体出现在窗口时通常会有一个边框加粗的命令按钮。按下Enter键,命令开始执行:
在这里,
要想使该按钮为默认,就需要设置其Default属性为真:
选择Order按钮设置Default属性为真。
请注意,您只能在窗体上有一个默认按钮 - 所以,如果你让另一个按钮的默认,这个将取消。
取消按钮(Escape键按钮)
类似于以上的默认按钮,当您按下ESC键取消按钮会被选择。
选择
这就是这个马拉松式格式化用户窗体学习的结尾。接下来,我们将学习:
- 如何附加代码到窗体并使他们正常运行
- 如何创建一些更高级的窗体控件
然而,这些都是独立博客的主题。
*该教材由谷歌翻译,原帖作者为安迪·布朗,本人只是略作校订。原帖网址:(http://www.wiseowl.co.uk/blog/s229/vba-userform.htm)