新浪博客

用VBA代码编辑器绘制用户窗体

2014-04-17 18:59阅读:

用VBA代码编辑器绘制用户窗体

由七个部分组成

学习如何借助用户窗体在VBA中创建自己的自定义对话框。这是该系列的第一部分(其他部分是写代码的用户窗体创建高级控制)。
  1. VBA用户窗体简介(本文)
  2. 在VBA中创建和使用用户窗体
  3. 属性窗口
  4. 选择窗体和控件
  5. 格式化窗体和控件
  6. 分组,对齐,调整大小,间距和排列

什么是用户窗体

一个用户窗体(或只是形式)就是您自己创建一个对话框。就像这样:
用VBA代码编辑器绘制用户窗体 用VBA代码编辑器绘制用户窗体
一个消息框 一个输入框

当然,我们可以通过添加一些控件和格式使之更为个性,就像这样:
酒水订购表格 这是我们要做的办公室饮料预定窗体。

用户窗体不限于Excel中:Word,PowerPoint和SharePoint Designer都可以使用相同的程序创建(而Access和Outlook,通常情况下,也可以通过自带的程序做到)。

用户窗体的优点和缺点

你应该学习如何创建和使用用户窗体?在学习之前我们先了解一下用户窗体的优缺点,这是优点
优点 笔记
印象深刻 自定义窗体带有的下拉列表,命令按钮,图片和格式化更能打动客户或经理。
易于使用 对于那些不喜欢直接在Excel表格中输入数据的用户,您可以通过创建窗体,使很大操作更为简单。

这些都是强大的优势; 硬币的另一面怎么样
坏处 笔记
验证数据 创建用户窗体是容易的; 但确保用户输入的数据是否正确,需要更长的时间。在工作​​表中,您可以像使用数据验证和保护工具,确保用户输入正确的数据类型,但在窗体中你将不得不更加努力,以避免错误。
偶尔抽风 我从多年​​的Excel和书写系统培训的经验是,用户窗体偶尔崩溃 -当 Excel本身却很少。


现在你知道什么是窗体了,让我们来看看如何创建一个,如何并用宏来运行它。

2、在VBA中创建和使用用户窗体

创建一个窗体

在VBA中创建一个用户窗体很容易 - 在代码编辑器中,只需右键单击并选择添加用户窗体:
插入一个用户窗体 右键单击一个项目/工作簿,然后选择显示插入一个用户窗体的选项。

你将被示以一个长方形的窗体,您可以拖拉右下角来调整大小:
调整窗体 单击并拖动右下角来调整用户窗体 - 它将始终出现在代码编辑器窗口的左上角。

就像宏,一个用户窗体存储为一个工作簿的一部分,而不是一个单独的文件。

控件

您添加到用户窗体的东西被称为控件下面简单的窗体有3个控件:
与3控制形成 1个标签,1个文本框和1个命令按钮。

下面饮品订购窗体已超过10控件:
饮料形成,显示控制 这种相对简单的窗体包括:
  • 1个图像
  • 3个标签
  • 2个文本框
  • 1个组合框
  • 1个滚动条
  • 2个按钮
  • 1个框架


在这个系列后来的博客展示了如何添加一些更深奥的控制 - 现在,我们介绍一般原则。

2、在窗体上绘制控件

您可以使用工具箱绘制绘制窗体上的任何控件
工具箱 表格工具箱 -最简单的控件都显示在左上角。
你可以让你的鼠标徘徊在每个控件上,看看它是什么:这是标签控件被选中。

当你打开一个表格,如果您看不到工具箱窗口,请尝试在这里单击工具箱
工具箱工具
如果它擅离职守不见了,单击显示的工具以显示 工具箱
一旦你选择了你的控制工具,您可以单击并拖动到窗体上的任何位置:
绘制一个标签控件 在这里,鼠标指针显示你正在绘制一个 标签控件。

在选定的位置上只需点击Excel(和任何其他应用程序一样)就会绘制具有标准尺寸和形状的控件。
经学会了如何绘制控件,让我们继续前进,以如何展示自己 的属性

3、属性窗口

如果你在设计表格需要花很多的时间,你需要属性窗口永久可见:
属性窗口 属性窗口中,您可以更改窗体或其控件的任何方面。

显示属性窗口

您可以使用菜单显示属性
属性窗口的菜单 选择菜单选项的属性窗口来显示。

或者,您也可以按F4键或单击该工具:
在属性工具 单击该工具 以显示属性窗口。

按字母排序或按分类排序属性

您可以从显示的列表中从A到Z或者分类选择您需要的属性,通过单击属性窗口的顶部:
用VBA代码编辑器绘制用户窗体 用VBA代码编辑器绘制用户窗体
按字母顺序 按分类顺序

我不知道我有什么建议,但这个博客的其余部分将始终使用分类(或者应该被分类的?)视图。

已经学会了如何显示属性,您接下来需要学习如何选择控件。

4、选择窗体和控件

要格式化一个窗体上的任何控件,您首先需要知道如何选择它/它们。我们首先看一下选择一个控制,然后看看如何来同时选择多个的控件(本博客的下一部分将会学习如何格式化控件和窗体)。

选择一个单一的控件

要改变单一控件,请单击以选中它,然后使用属性窗口:
控件属性菜单 任何控制,以显示其属性右键单击,如下图所示,如果他们不是已经可见(前面已经提到过,您也可以按F4键 在任何时候,弹出属性 窗口)。

或者,您也可以在属性窗口本身选择控件
属性窗口 - 控制下拉 点击下拉箭头,选择要更改属性的控件。

选择多个控件

有几种方法可以同时选择多个控件。最简单的方法可能是用鼠标左键:
单击并拖动选择 单击并拖动窗体上绘制一个矩形,并确保你开始位置在空白区。这个矩形接触或包围的控件将被选中。这个例子会选取了3个控件。

或者,您可以使用SHIFT键CTRL 键:
使用键选择 在这个例子中,如果你点击[确定] 按钮,如图所示:
  • CTRL 键不放,它会添加到当前选择的按钮;
  • SHIFT 键不放,就会添加按钮和文本框(因为是文本框在标签和按钮前加入,从而谎言“之间”)。


或者,您可以按CTRL + A 一气呵成选择窗体上的每个控件。

主导控件

如果选择多个控件,有一个(也是唯一一个)控件周围会出现白色的方框; 而其他的是黑色。这个白色的方框的选择被称为主导控件
控制与白色和黑色手柄 这里的标签Name: 是主导控件。如果你选择了多个控件,您可以点击其中任何一个做,作为新的主导控制。

这句话的意思是,如果你调整多个选定控件的大小或对齐时(本博客后面会提到),将以主导控件作为参照:
对齐控制 上图所示为左对齐的结果。向红线对齐,因为这是主导控件的左边缘。

选择整个窗体

如果你想为一个窗口(如它的名称)更改属性,你需要选择它:
用鼠标选择表格 单击窗体上其他控件以外的的任意位置,选择窗体,如下图所示。


现在,你知道如何选择一个窗体或其控件,是时候来看看如何格式化它/它们。

格式化窗体和控件

您可以通过选择它/它们(如本博客的前面部分所示),然后按如下所示更改属性格式化形式或任何其控制。

窗体标题

要改变窗体的标题:
更改窗体标题属性 要改变窗体的标题:
  1. 确定要显示的标题。
  2. caption属性键入(真奇怪!在键入的同时我们可以看到窗口的标题会随着改变)。


改变背景和前景颜色

您可以选择控件(S)或窗体本身来改变其颜色:
前景色和背景色属性 更改:
  1. 背景色属性;
  2. 前景色属性
如下图所示。

当改变颜色属性,一定要使用的调色板的颜色或系统的颜色:
颜色的调色板标签撕下 选择 调色板选项卡,看看有什么颜色你选择!

设置控件的背景色为透明的方式略有不同:
BackStyle属性 更改背景样式控件的(BackStyle)属性为透明,这样控件就会和整个窗体的颜色一致。

字体

更改控件的不理想的初始字体:
Font属性 单击 字体属性,生成按钮(带有3个点)出现。点击这里!

字体对话框的出现使一切变得简单:
字体对话框 唷!这个现在看起来很熟悉。

控件文本的水平对齐

在下面的窗体中,选定标签右对齐水平:
右对齐的标签 默认的对齐方式为左对齐,已经有人已经改变了这些控件。

要更改水平对齐方式,你可能会期待有这样的工具:
水平对齐工具 应该有这样的工具。他们在哪里?

没找不到,对齐属性也没有呀?这是文本对齐TextAlign(当然!),就是它:
TextAlign属性 文本对齐属性有3个。

控件文本的垂直对齐

一个控件文本的垂直对齐文本也很简单 - 这一点在用户窗体里可能用不到!
垂直对齐控制 如果你想要的标题出现在文本框的垂直中心,你只能在文本的前面按Enter键

窗体内居中对齐

在下面的命令按钮在窗体内水平居中对齐
一个中心对齐命令按钮 Order按钮水平居中。

要做到这一点,选择相关的控件,然后选择下列选项之一:
中心的横向菜单选项 窗体内居中。

设置的控件的边框

您可以设置控件的边框的颜色和厚度:
控制与边界 这种控制有一个黑色的边框。

要做到这一点,设置如下所示的两个属性:
边框属性 如果没有设置边框的样式,也就不用设置边框的颜色了。

这四个属性你可能不必更改

有一些属性我认为你不应该改变!
图片上的表格 图片属性允许您在窗体上设置背景图片,但他们总是掩盖的内容。你可以平铺,拉伸和缩放照片,但最好删除它们!

带垂直滚动条形成 您可以设置滚动条属性水平垂直两者都的形式,但在你不需要的情况下,最好关掉(或者在需要的时候选择使用多页控件)。

初创pos​​ition属性 窗体的初创位置属性start-up position property,但最明智的位置似乎是在其所属程序(即Excel表格)的中间,这是默认的,如下图所示。

一个非模式窗体 窗体的模块属性:如果你设置为,用户可以忽略窗体并单击操作Excel表格,这可能不是一个好主意。


现在,我们已经学习了格式化的窗体和单独的控件,让我们继续学习格式化多个控件:即多个控件的对齐,大小,间距和分组控制。

6、分组,对齐,调整大小,间距和排列

在前面我们学习同时选中多个控件时提到,带有白色小方块的主导控件(以及这意味着什么)。在这里我们学习多个控件的对齐,大小,间距和分组控制



控件间的对齐

要对齐控件,请选择它们,然后选择下图所示,鼠标右键选项:
选定的三个控件,用对齐菜单 在这里的Name标签是占主导控件,这样选择左对齐(如图所示)时,选定的控件会向它的左边缘对齐。

均分控件的水平或垂直间距

在下面的表格中,各控件需要平均分部:
控制与不平等的垂直间距 在这种情况下,控件间隔等距会更好看。

要做到这一点,选择控件如图所示,然后选择此处显示的菜单选项之一:
垂直间距菜单选项 在这个实例中所示的选项就是我们想要的。

请注意,在这种情况下,你将不得不对文本框/组合框做同样的事情,让他们以同样的方式排列。

使控件大小一致

以下是如何获得2个或多个控件具有相同的大小或宽度:
尺寸宽度菜单选项 选择控件,然后在其中一个右键单击并选择此处显示的菜单选项。Drink组合框是主导控制,所以另外两个选定的控件将被调整为和该控件相同的宽度。

分组控件

在你设计的窗体中有些部分,作为一组是非常有用的,使它们就像一个单一的控件:
在一帧中多个控件 在这里,我们希望将所有框架中的控件组合到一起,这样我们就可以作为一个整体来移动操作。

做到这一点的方法是选择所有控件并将它们组合在一起的:
选择分组控制 控制组合在一起
这样来组合控件... ......选择时会成为一体。

即使控件组合在一起,你仍然可以在组内分别格式化单个控件,让您两全其美。
可以以同样的方式取消组合:
取消组合菜单 在分组组控件单击鼠标右键并选择取消组合如下所示。

使用框架组合控件

另一种组合方式是通过创建一个框架。首先剪切你希望出现在框架上的控件:
对于选定的控件快捷菜单 选择要组合在一起的控件,并剪切他们到剪贴板。

点击框架Frame工具,并用它来 ​​绘制一个矩形:
该框架工具 点击该工具,并绘制你的框架的矩形。

现在,您可以删除该框架的标题,并粘贴控件:
帧标题 删除 Frame1的标题(在其Caption属性中 ),使其看起来更整洁,然后从剪贴板中粘贴控件拖到框架内

结果:无论该框架去哪里,其中的控件也会跟随:
选定的帧 当您移动框架时,其中的控件也随之移动。

你可以设置框架边框属性为 frmBorderStyleNone隐藏边框,如果你不希望看到矩形框。

7、怎样用快捷键控制窗体

我们已经知道了如何格式化表格,我们现在学习在窗体内使用快捷键,以及输入Tab键 取消键。

控制Tab键顺序

当你按下Tab键 键窗体会发生什么?答案取决于窗体的Tab键顺序:
控制与重点 当你按下Tab键 键窗体会发生什么?你想光标跳转到下一个可以“获得焦点” 的控件,-也就是说, Drink组合框。

可以在窗体框架或者 多页控件设置Tab键顺序如果您选择了窗体,你会看到窗体的Tab键顺序:
Tab键顺序菜单 选择窗体框架或者 多页控件,然后选择要更改的Tab键顺序如图所示。
  • 如果您已经选择了窗体,你会看到窗体上的顶级控件;
  • 如果您(此例)选择了一个框架,你会看到框架内的控件。


如果你选择了框架或者多页,你只会看到一些窗体的控件:
用于控制在一个框架Tab键顺序 因为你选择了一个框架,你只能在框架内的控件的Tab键顺序。

很奇怪的是Tab键顺序包括标签控件,实际上由于这些控件不能接收焦点(你不能点击它们),故而与Tab键顺序无关。接下来我们来看看怎样让标签的快捷键出现在 Tab键顺序对话框。

快捷键

在下面的窗体,你可以按ALT + Ð 跳转到Drink:组合框,因为该标签具有D下划线:
重点控制 带下划线的字母 D被称为快捷键。

您只能将快捷键连接到标签,而不能连接文本框或组合框。当你按下会发生ALT + Ð 光标会跳转到Tab顺序中的下一个可以接收焦点的Drink组合框。
窗体Tab键顺序 Drink:组合框是lblDrink标签后的第一个控件且可以接收焦点(比如,您可以单击进入)。

至于你如何安装快捷键 - 这是很容易的:
加速键属性 在Accelerator属性中输入一个字母

默认按钮(回车键)

当窗体出现在窗口时通常会有一个边框加粗的命令按钮。按下Enter键,命令开始执行:
订购按钮为默认按钮 在这里, Order按钮的边框略有加粗,按下Enter键,命令开始执行:

要想使该按钮为默认,就需要设置其Default属性为
默认属性 选择Order按钮设置Default属性为

请注意,您只能在窗体上有一个默认按钮 - 所以,如果你让另一个按钮的默认,这个将取消。

取消按钮(Escape键按钮)

类似于以上的默认按钮,当您按下ESC键取消按钮会被选择。
Cancel属性 选择 取消按钮,并设置其 Cancel属性设置为当用户按下ESC键,连接到这个按钮的任何代码将会执行。就像默认 按钮,每个窗体也只有一个 取消按钮。

这就是这个马拉松式格式化用户窗体学习的结尾。接下来,我们将学习:
  • 如何附加代码到窗体并使他们正常运行
  • 如何创建一些更高级的窗体控件
然而,这些都是独立博客的主题。
*该教材由谷歌翻译,原帖作者为安迪·布朗,本人只是略作校订。原帖网址:(http://www.wiseowl.co.uk/blog/s229/vba-userform.htm)
来自为知笔记(Wiz)

我的更多文章

下载客户端阅读体验更佳

APP专享