当前位置:文档之家› 第1章 使用窗体和控件

第1章 使用窗体和控件

第1章 使用窗体和控件
第1章 使用窗体和控件

第1章 使用窗体和控件

为了便于程序与用户间的交互,可以在Excel中创建独立的窗体,在其中添加一些控件,这样就可以让用户像使用Excel内置对话框一样,来使用窗体。不但减少了数据输入的麻烦,而且也使操作界面更加友好。本章将介绍窗体和控件的知识。

1.1Excel中的两类窗体

为了简化输入,可以在Excel工作表中通过添加控件的方式,制作一个交互性极强的表单系统。如图1-1所示的工作表也许您以前曾经看到过,它就是一个工作表窗体,其中放置了一些控件,使得输入与选择数据变得非常简单。这非常适合于开发人员给客户提供的最终Excel应用程序。

在Excel中进行各种操作时,经常会遇到在一个弹出的对话框中选择某个选项或输入某些内容而得到设置结果。如果希望自己定制对话框的外观及可用选项,那么就需要创建用户窗体。如图1-2所示为一个根据用户选择的选项来查询图书的一个查询窗体。

图1-1 一个工作表窗体的例子图1-2 一个用户窗体的例子本章剩下的部分将先介绍创建用户窗体的步骤和方法,然后介绍在工作表中使用控件的方法和技巧。

1.2使用InputBox和MsgBox函数代替窗体

在前几章中,我们已经多次用到了InputBox和MsgBox函数。使用这两个函数可以显

示简单的对话框。因此,如果不需要特别定制复杂的窗体,而只是获取用户的输入或返回一条信息,那么就可以使用InputBox和MsgBox函数来完成。

1.2.1InputBox

InputBox函数分为两种,一种是VB程序中的InputBox函数,另一种是Excel中Appl ication对象的InputBox方法。它们都可以显示一个输入框,用于获取用户的输入信息,然后将返回结果赋值给一个变量以进行其他操作。Excel中的Application对象的InputBox方法比VB程序中的InputBox函数有更强大的功能。

VB程序中的InputBox函数的语法如下:

InputBox(prompt, title, default, xpos, ypos, helpfile, contex t)

InputBox函数中各参数的作用如下:

prompt:显示在输入对话框中的文本(必选)。

title:显示在输入对话框标题栏中的文本(可选)。

default:显示在输入对话框的文本框中的默认值(可选)。

xpos和ypos:窗口左上角的屏幕坐标值(可选)。

helpfile:输入对话框中的帮助文件(可选)。

context:输入对话框中的帮助主题(可选)。

在使用InputBox函数时,通常只会使用前3个参数或者只使用前两个参数,得到如下的简化版本:

InputBox(prompt, title, default)

例如,下面的代码将根据用户输入的内容返回一条信息:

Sub GetInfo()

Dim Ans As String

Ans = InputBox("请输入", "输入信息")

MsgBox "您输入的信息是:" & Ans

End Sub

运行上面的代码,将显示如图1-3所示的对话框。当用户输入一个内容并单击【确定】按钮,将在一个对话框中显示所输入的内容。

图1-3 使用VB的InputBox函数打开的输入对话框

如果在上个例子中用户未输入任何内容或单击【取消】按钮,那么InputBox函数都将返回一个空字符串。为了强制要求用户输入内容,可以设置一个Do While循环,只要输

入的内容为空,那么就一直显示输入对话框等待用户输入,代码如下:

Sub GetInfo()

Dim Ans As String

Do While Ans = ""

Ans = InputBox("请输入", "输入信息")

Loop

MsgBox "您输入的内容是:" & Ans

End Sub

使用VB程序的InputBox函数,返回的内容均为文本类型,如果要获得其他类型的数据,则必须使用VB的内置函数进行转换。更好的解决方法是使用Excel的Application对象的InputBox方法。InputBox方法的语法如下:

InputBox(Prompt, Title, Default, Left, Top, HelpFile, HelpCont extID, Type)

可以看出,InputBox方法比InputBox函数多了一个Type参数,使用该参数,可以指定用户输入的数据类型。表1-1列出了Type参数的取值以及代表的数据类型。

表1-1 Type参数的取值与返回的数据类型

Type参数的取值返回值的数据类型

0 公式

1 数字

2 文本(默认)

4 逻辑值

8 单元格引用(Range对象)

16 错误值

64 数值数组

例如,下面的代码需要用户输入一个单元格区域引用,然后对输入的区域进行求和计算,并将计算结果通过信息对话框返回:

Sub GetInfo2()

Dim MyRange As Range

On Error GoTo Canceled

Set MyRange = Application.InputBox(prompt:="请输入一个区域", Title:="输入区域", Type:=8)

MsgBox "所选区域的总和是:" & Application.WorksheetFunction.Su m(MyRange)

Canceled:

End Sub

由于返回值是一个单元格区域(Type参数设置为8),因此,需要先声明一个Range 对象变量,然后使用Set语句将InputBox方法的返回值赋值给Range对象变量,最后使用信息对话框显示结果。运行上面的代码,通过拖动选择区域或手工输入区域,如图1-4所示。

单击【确定】按钮,即可返回计算结果。如果用户单击【取消】按钮,将结束该过程。

图1-4 使用InputBox方法可以指定返回值的数据类型

提示:如果希望拥有多种数据类型的返回值,那么可以使用Type参数中的数值之和。例如,希望返回值可以是数字或文本类型之一,那么可以将Type参数设置为3,即1+2。

使用InputBox方法的另一个好处是,它可以对用户输入的内容进行有效性验证,如图1-5所示。

图1-5 使用InputBox方法可验证用户输入的内容

1.2.2MsgBox

如果要返回一条信息,那么使用MsgBox函数很不错。而且可以根据用户单击不同的按钮再进行指定的操作。MsgBox函数的语法如下:

MsgBox(prompt, buttons, title, helpfile, context)

MsgBox函数中各参数的作用如下:

prompt:显示在信息对话框中的文本(必选)。

buttons:显示在信息对话框中的按钮和图标(可选)。

title:显示在信息对话框标题栏中的文本(可选)。

helpfile:信息对话框中的帮助文件(可选)。

context:信息对话框中的帮助主题(可选)。

在使用MsgBox函数时,通常只会使用前3个参数,得到如下的简化版本:

MsgBox(prompt, buttons, title)

例如,在下面的代码中,只简单的显示了一条信息:

Sub ShowInfo()

MsgBox "您好,欢迎使用Excel 2007"

End Sub

运行上面的代码,将显示一条信息,如图1-6所示。

图1-6 显示一条简单的信息

如果设置MsgBox函数的buttons参数,那么可以让返回的信息对话框更加完善,例如下面的代码:

Sub ShowInfo()

MsgBox "您好,欢迎使用Excel 2007", vbOKCancel + VbInformation + vbDefaultButton1, “欢迎信息”

End Sub

运行上面的代码,将显示如图1-7所示的对话框。

图1-7 添加更多内容的信息对话框

表1-2列出了MsgBox函数中buttons参数的取值范围。

表1-2 MsgBox函数中buttons参数的常量

常量名数值说明

vbOKOnly 0

显示【确定】按钮

VbOKCancel 1

显示【确定】和【取消】按钮

VbAbortRetryIgnore 2 显示【终止】、【重试】和【忽略】按钮VbYesNoCancel 3 显示【是】、【否】和【取消】按钮

VbYesNo 4

显示【是】和【否】按钮

VbRetryCancel 5

显示【重试】【取消】按钮

VbCritical 16

显示【重要信息】图标

VbQuestion 32

显示【警告询问】图标

VbExclamation 48

显示【警告信息】图标

VbInformation 64

显示【通知信息】图标

vbDefaultButton1 0 第一个按钮是缺省值

vbDefaultButton2 256

第二个按钮是缺省值

vbDefaultButton2 512

第三个按钮是缺省值

vbDefaultButton2 768

第四个按钮是缺省值

如果将MsgBox的结果赋值给一个变量,那么程序可以根据该变量的值来决定后面的操作。MsgBox函数的返回值见表1-3。

表1-3 MsgBox函数的返回值

常量名数值说明

vbOK 1

用户单击了【确定】按钮

vbCancel 2

用户单击了【取消】按钮

vbAbort 3

用户单击了【终止】按钮

vbRetry 4

用户单击了【重试】按钮

vbIgnore 5

用户单击了【忽略】按钮

vbYes 6

用户单击了【是】按钮

vbNo 7

用户单击了【否】按钮

例如,下面的代码根据用户单击的不同按钮,执行不同的操作。如果用户单击【是】按钮,将保存更改并关闭工作簿;如果单击【否】按钮,将保存更改并关闭工作簿;如果单击【取消】按钮,则返回工作簿:

Sub ShowInfo()

Dim Ans As Integer

Ans = MsgBox(" 您需要保存当前工作吗?", vbYesNoCancel + vbQuest ion, "是否保存")

Select Case Ans

Case vbYes

ActiveWorkbook.Close savechanges:=True

Case vbNo

ActiveWorkbook.Close savechanges:=False

Case vbCancel

Exit Sub

End Select

End Sub

运行上面的代码,将显示如图1-8所示的对话框。根据用户单击不同的按钮,会自动执行相应的操作。

图1-8 使用MsgBox函数的返回值来获取用户的操作

1.3创建用户窗体

如果感觉使用InputBox和MsgBox创建的对话框过于简单,无法满足使用需要,那么就需要创建真正的用户窗体了。在Excel中创建的用户窗体,与执行Excel命令所弹出的对话框以及Windows操作系统中的对话框是类似的。开发人员可以根据实际需求,自由定制用户窗体的外观。在窗体上布置控件的位置,通过属性设置控件的外观,然后对每个控件

编写代码来响应用户的操作,这样就可以让窗体与用户产生极强的交互,而且使用户操作数据更加灵活方便。

1.3.1了解创建用户窗体的整个流程

也许您对创建用户窗体的过程还比较模糊,创建用户窗体的流程大体可分为以下几步:(1)了解准备创建的用户窗体要完成哪些功能,需要在窗体中放置哪些内容。

(2)打开VBE窗口,然后插入一个新的用户窗体。

(3)在用户窗体中,添加所需的控件,并设置控件的属性。

(4)编写窗体和控件的事件代码,用于响应用户的操作。

(5)在标准模块中编写用于显示用户窗体的代码。

(6)对所创建的用户窗体进行测试。

1.3.2新建用户窗体

在Excel中,要创建一个用户窗体,需要在VBE窗口中完成,具体操作如下:

(1)启动Excel 2007,选择【开发工具】?【代码】?【Visual Basic】命令,或按【A lt+F11】组合键,打开VBE窗口。

(2)在工程资源管理器中,右键单击要创建用户窗体的工作簿,在弹出菜单中选择【插入】?【用户窗体】命令,将在VBE窗口右侧创建一个空白的用户窗体,如图1-9所示。

图1-9 在VBE窗口中创建一个空白窗体

1.3.3向用户窗体添加控件

一个空白的用户窗体通常毫无用处,为了可以通过窗体加强用户与Excel程序的交互,那么就需要在用户窗体中添加所需的控件。如果在VBE窗口中创建了窗体,当单击该窗体时,将会自动在窗口的附近显示一个控件工具箱。如果不小心关闭了控件工具箱,可以通过选择菜单【视图】?【工具箱】命令打开它。控件工具箱中的每个图标代表一个控件,

将鼠标移动到图标上方,会显示控件的名称,如图1-10所示。表1-4控件工具箱中的控件。

图1-10 控件工具箱

表1-4 控件工具箱中的控件

控件说明

选定对象可以在窗体中通过拖动选择控件

标签添加【标签】控件

文字框添加【文字框】控件

复合框添加【复合框】控件

列表框添加【列表框】控件

复选框添加【复选框】控件

选项按钮添加【选项按钮】控件

切换按钮添加【切换按钮】控件

框架添加【框架】控件

命令按钮添加【命令按钮】控件

TabStrip添加【TabStrip】控件

多页添加【多页】控件

滚动条添加【滚动条】控件

旋转按钮添加【旋转按钮】控件

图像添加【图像】控件

RefEdit添加【RefEdit】控件

要将控件添加到用户窗体中,可以使用以下几种方法:

单击控件图标,然后将其拖动到用户窗体中。使用该方法将创建默认大小的控件。

单击控件图标,然后在用户窗体中绘制控件。使用该方法可绘制任意大小的控件。

双击控件图标,进入控件锁定状态,可以在用户窗体中创建多个同类型的控件。

绘制好之后,单击控件工具箱中的其他控件图标,即可解除控件锁定状态。

添加控件后,可以通过单击控件选择它,通过拖动来移动控件的位置。如图1-11所示是在用户窗体中添加的一个【命令按钮】控件和一个【文字框】控件。

图1-11 在窗体中添加一个命令按钮和一个文字框控件

交叉参考:在控件工具箱中的控件也可以在工作表中使用。这些控件被称为ActiveX控件,具体内容请参考本章后面的1.5节。

1.3.4设置控件的属性

在用户窗体中添加控件后,通常都需要设置控件的属性,目的是改变控件的外观和行为。单击一个控件,在【属性】窗口中将显示该控件的可用属性,如图1-12所示。不同的控件拥有不同的一组属性。单击哪一个控件,就会在【属性】窗口中显示该控件的属性列表。

图1-12 【命令按钮】控件的属性列表

提示:如果未显示【属性】窗口,可以选择菜单【视图】?【属性窗口】来打开它。

可以在【属性】窗口中修改控件的属性,也可以在代码窗口中设置控件的属性。如果在【属性】窗口中设置控件属性,那么修改后的结果将会立刻看到。如果在代码窗口中设置控件的属性,则只有在运行代码时才会看到修改结果。

在设置属性时,可以单击【属性】窗口中的属性名称,然后输入一个属性值。也有可

能在单击属性名称时,会显示一个下拉按钮,单击该按钮可以从下拉列表中选择属性值。还有些会在单击属性名称时,显示一个按钮,单击该按钮在打开的对话框中设置属性值。

例如,在如图1-13所示的用户窗体中,为窗体的【Caption】属性设置为【显示信息】,将【命令按钮】控件的【Caption】属性设置为【确定】。

图1-13 设置用户窗体和控件的属性

每个控件都有一个Name属性,在编写控件事件时,将在代码中使用该名称引用控件。在用户窗体中插入控件时,控件的Name属性值默认为该控件类型的名称与编号的组合。例如,在用户窗体中添加的第一个【命令按钮】控件的Name属性是“CommandButton1”,第二【命令按钮】控件的Name属性就是“CommandButton2”,以此类推。

提示:如果您希望详细了解某个属性,可以在【属性】窗口中单击属性名,然后按F1键,将会在帮助文件中看到详细的帮助内容。

1.3.5编写窗体控件的事件代码

和工作簿、工作表对象的事件类似,用户窗体和控件也有各种事件,用于响应用户对窗体和控件的不同操作。甚至可以这么说,如果不编写窗体和控件的事件,那么整个用户窗体也就失去了其存在价值。

当用户对一个控件进行某种操作时,都将引发该控件的某个事件。例如,当单击按钮时,将触发按钮的单击事件(CommandButton_Click)。要编写控件的事件代码,双击用户窗体中的相应控件即可。例如,双击【命令按钮】控件,将打开窗体模块代码窗口并显示命令按钮的Click事件,然后在该事件过程中编写触发该事件时要运行的代码即可。如图1 -14所示的代码表示,在单击命令按钮时显示文字框中的内容。

图1-14 编写控件的事件代码

要编写用户窗体中其他控件的事件代码,只要在窗体模块代码窗口的左侧下拉列表中选择控件名称,然后在右侧下拉列表中选择事件即可。

1.3.6编写显示用户窗体的代码

在设计好用户窗体后,还需要编写一个用于显示用户窗体的过程,这可以使用用户窗体的Show方法。在VBE窗口中插入一个标准模块,然后在该模块的代码窗口中新建一个过程,并在该过程中输入下面的代码:

Sub 显示用户窗体()

UserForm1.Show

End Sub

1.3.7测试用户窗体

到目前为止,已经完成了整个窗体的设计过程。为了验证窗体是否可以如预期的那样正常工作,需要对创建的用户窗体进行测试。具体操作如下:

(1)从VBE窗口宏切换到Excel窗口,选择【开发工具】?【代码】?【宏】命令,打开【宏】对话框。

(2)选择用于显示用户窗体的宏,然后单击【执行】按钮,将打开宏过程中指定的用户窗体,如图1-15所示。

图1-15 在Excel工作表中运行用户窗体

(3)单击用户窗体中的文本框,然后随便输入一个内容。单击【确定】按钮,将在一个信息对话框中显示刚才输入的内容,如图1-16所示。

图1-16 检测窗体是否可以正常工作

1.3.8设置Tab键顺序

在上一小节打开用户窗体时,要在文本框中输入内容,需要先单击文本框内部,才能将内容输入到文本框中,这是由于默认焦点位于命令按钮上。在Windows操作系统中,每个打开的对话框都有一个默认焦点,如果按【Enter】键则相当于单击具有焦点的控件。可以通过按【Tab】键来改变焦点的位置。

在VBA中,可以通过设置Tab键顺序来决定按【Tab】键时控件的激活顺序。可以使用以下两种方法改变控件的Tab键顺序:

在VBE窗口,选择菜单【编辑】?【Tab键顺序】命令;或者右键单击用户窗体空白处,在弹出菜单中选择【Tab键顺序】命令,打开【Tab键顺序】对话框,如

图1-17所示。选择要调整Tab键顺序的控件,然后根据需要单击【上移】或【下

移】按钮进行调整。

图1-17 使用对话框调整Tab键顺序

在VBE窗口,打开【属性】窗口,单击用户窗体中要调整Tab键顺序的控件。然后在【属性】窗口中设置【TabIndex】属性的值。TabIndex值为0的控件,将是

当前用户窗体中第一个被激活的控件。

对于前面创建的用户窗体,将【文字框】控件的Tab键顺序调整到【命令按钮】控件之前。当再次打开前面创建的用户窗体时,光标将直接出现在文本框中。此时无需单击文本框,直接输入的内容即可出现在文本框中,因为文本框的Tab键顺序位于命令按钮之前。

1.3.9关于用户窗体的属性、方法和事件

由于用户窗体是整个窗体设计过程中的主体,是所有控件的容器,因此,有必要详细了解一下用户窗体的常用属性、方法和事件。表1-5列出了用户窗体的常用属性,表1-6列出了用户窗体的常用方法,表1-7列出了用户窗体的常用事件。

表1-5 用户窗体的常用属性

属性说明

Name 设置用户窗体的名称,是代码中唯一区别控件的名称

BorderStyle 设置用户窗体边框样式

Caption 设置显示在用户窗体标题栏中的文字

Enabled 设置用户窗体是否接收用户的操作

Height 设置用户窗体的高度

Left 设置用户窗体左边缘与屏幕左边缘额距离

Picture 设置用户窗体的背景图片

ScrollBars 设置用户窗体是否显示滚动条

ShowModal 设置用户窗体的显示模式

StartUpPosition 设置用户窗体启动时的显示位置

Top 设置用户窗体上边缘与屏幕上边缘额距离

Width 设置用户窗体的宽度

表1-6 用户窗体的常用方法

方法说明

Hide 隐藏用户窗体

Move 移动用户窗体

Show 显示用户窗体

表1-7 用户窗体的常用事件

事件触发事件的行为

Activate 激活窗体时

Click 单击窗体时

DblClick 双击窗体时

Deactivate 窗体由活动状态转为非活动状态时

Initialize 初始化窗体时

KeyDown 按下键盘按键时

KeyPress 按下可输入字符时

KeyUp 松开键盘按键时

MouseDown 按下鼠标按钮时

MouseMove 移动鼠标时

MouseUp 松开鼠标按钮时

QueryClose 关闭用户窗体前

Resize 调整用户窗体大小时

Terminate 卸载用户窗体后

1.3.10一个简单的窗体实例

本小节将通过一个实例演示开发用户窗体的整个过程。这个实例要完成的功能是:在Excel界面中打开一个对话框,其中为用户提供4个选项。通过选择不同的选项,可以分别对当前活动单元格所在的行、所在的列、所在的行和列以及工作表所有单元格设置背景色。要完成这样的功能,需要编写4个VBA过程。但是使用用户窗体,那么只要提供4个选项,然后根据用户的选择来编写不同选项的事件代码即可解决,具有更大的灵活性。具体操作如下:

(1)启动Excel 2007,选择【开发工具】?【代码】?【Visual Basic】命令,打开V BE窗口。

(2)选择菜单【插入】?【用户窗体】命令,插入一个用户窗体。

(3)向用户窗体添加4个【选项按钮】控件和两个【命令按钮】控件。按照表1-8中的内容对窗体中的各属性进行设置。设置后的窗体如图1-18所示。在调整控件之间的位置关系和对齐方式时,可以使用VBE窗口的【格式】菜单中的命令。

图1-18 向用户窗体中添加控件

表1-8 各控件的属性设置

控件属性设置值

Name MyForm

【用户窗体】控件

Caption 设置背景色

ShowModal False

【命令按钮】控件1 Name OkButton

Caption 确定

Default True

Name CancelButton

【命令按钮】控件2

Caption 取消

Default True

Name OptRowColor

Caption 设置行背景色

【选项按钮】控件1

Value True

AutoSize True

Name OptColumnColor

【选项按钮】控件2

Caption 设置列背景色

AutoSize True

Name OptRowColumnColor

【选项按钮】控件3

Caption 设置行和列背景色

AutoSize True

Name OptAllColor

【选项按钮】控件4

Caption 设置全部背景色

AutoSize True

为了使用户窗体中的4个选项以及两个按钮可以响应用户的操作,下面需要编写这些控件的事件代码。现在要实现的功能是,当用户选择4个选项按钮中的一个并单击【确定】按钮时,Excel应该可以正确对当前活动单元格所在的区域设置背景色。而单击【取消】按钮则清除工作表单元格中的所有颜色并关闭用户窗体。

这里只需要编写【确定】和【取消】这两个按钮的事件过程即可,无需额外处理4个选项按钮的事件。因为当选中选项按钮时,该控件的Value属性将变为True,因此可由该属性判断选项按钮是否被选中。

(4)双击用户窗体中的【取消】按钮,打开用户窗体模块的代码窗口,并自动显示【取消】按钮的单击事件过程框架。在End Sub语句之前输入下面的代码:

Private Sub CancelButton_Click()

Cells.Interior.ColorIndex = xlNone

Unload MyForm

End Sub

(5)在代码窗口的左侧下拉列表中选择【OkButton】,在右侧列表中选择【Click】。编写【确定】按钮的事件代码:

Private Sub OkButton_Click()

Dim red As Integer, green As Integer, blue As Integer

red = Int((256 - 0 + 1) * Rnd + 0)

green = Int((256 - 0 + 1) * Rnd + 0)

blue = Int((256 - 0 + 1) * Rnd + 0)

Select Case True

Case OptRowColor

Cells.Interior.ColorIndex = xlNone

ActiveCell.EntireRow.Interior.Color = RGB(red, green, blue)

Case OptColumnColor

Cells.Interior.ColorIndex = xlNone

ActiveCell.EntireColumn.Interior.Color = RGB(red, gr een, blue)

Case OptRowColumnColor

Cells.Interior.ColorIndex = xlNone

ActiveCell.EntireRow.Interior.Color = RGB(red, green, blue)

ActiveCell.EntireColumn.Interior.Color = RGB(red, gr een, blue)

Case OptAllColor

Cells.Interior.ColorIndex = xlNone

Cells.Interior.Color = RGB(red, green, blue)

End Select

End Sub

上面代码中的Int((256 - 0 + 1) * Rnd + 0)语句,表示随机得到一个0~255之间的整数,而使用RGB(red, green, blue)语句表示随机得到一个颜色。

(6)为了可以启动用户窗体,还需要编写一个显示用户窗体的过程。代码如下:

Sub 设置单元格颜色()

MyForm.Show

End Sub

(7)完成上述过程,关闭VBE窗口,返回Excel操作界面。选择【开发工具】?【代码】?【宏】命令,打开【宏】对话框,选择【设置单元格颜色】宏,如图1-19所示。

图1-19 选择要运行的宏

(8)单击【执行】按钮,打开【设置背景色】对话框(用户窗体的Caption属性),如图1-20所示。由于将用户窗体的ShowModal属性设置为False,即无模式,因此,可以在【设置背景色】对话框打开的情况下随时改变活动单元格的位置。

图1-20 打开【设置背景色】对话框

(9)选择好单元格后,在【设置背景色】对话框中选择一种着色方式,例如,选中【设置行列背景色】单选按钮。单击【确定】按钮后,即可对当前单元格所在的行和列同时设置背景色,如图1-21所示。

图1-21 根据选择的选项对指定区域设置背景色

(10)由于颜色是随机得到的,因此,在不改变选项的情况下,可以通过多次单击【确定】按钮来改变区域的颜色。而且因为用户窗体被设置为无模式,所以可以在不关闭【设置背景色】对话框的情况下,重新对其他单元格以新的方式设置背景色,如图1-22所示。

图1-22 以新方式对新的单元格设置背景色

(11)如果要关闭【设置背景色】对话框,单击【取消】按钮,关闭该对话框并自动清除工作表中的背景色。

1.4在工作表中使用控件

也许您对上一节介绍的创建用户窗体技术并不感兴趣,或是感觉创建用户窗体并编写事件代码有些麻烦。基于这两种原因,那么您可以不使用窗体而是直接在工作表中使用Ex cel提供的各种控件,然后将它们与单元格进行关联,从而实现一定的交互功能。本节将介绍在工作表中使用控件的基本知识。

1.4.1了解工作表中的控件

在Excel 2007中,将控件细分为表单控件和ActiveX控件两大类。表单控件在工作表中使用很方便,可以给它指定宏,但是它和VBA程序设计方面的结合显得不够灵活。而A ctiveX控件不但可以在工作表中使用,而且如果使用VBA代码来控制ActiveX控件,那么所实现的功能将更加强大。表1-9列出了ActiveX控件类型中包含的具体控件。

表1-9 ActiveX控件类型包含的具体控件

控件说明

命令按钮添加一个【命令按钮】控件

组合框添加一个【组合框】控件

复选框添加一个【复选框】控件

列表框添加一个【列表框】控件

文本框添加一个【文本框】控件

滚动条添加一个【滚动条】控件

数值调节钮添加一个【数值调节钮】控件

选项按钮添加一个【选项按钮】控件

标签添加一个【标签】控件

图像添加一个【图像】控件

切换按钮添加一个【切换按钮】控件

其他控件打开【其他控件】对话框

1.4.2在工作表中添加控件

在工作表中添加控件很简单,选择【开发工具】?【控件】?【插入】命令,在弹出的菜单中显示了两类控件:表单控件和ActiveX控件。将鼠标移动到控件图标上,可以看到控件的名称。单击要使用的控件图标,然后在工作表中拖动鼠标即可绘制出任意大小的控件。如图1-23所示为在工作表中添加了一个表单控件(左)和一个ActiveX控件(右)。可以看出,这两种类型的相同控件从外观上来看极其相似,但是它们的一些使用方法却有所不同。后面的内容将介绍这些不同之处。

图1-23 在工作表中添加一个表单控件和一个ActiveX控件

如果在工作表中插入了表单控件中的【命令按钮】控件,将会弹出【指定宏】对话框,可以为命令按钮指定一个宏。如果暂时不想进行该设置,可以单击【取消】按钮待以后再为命令按钮指定宏。

如果在工作表中插入了ActiveX控件,那么在【开发工具】?【控件】组中将自动选中【设计模式】命令。此时将进入设计模式,在该模式下,可以对ActiveX控件进行各种设置,包括调整控件的大小和位置、设置控件属性、编写控件的事件代码等操作。当单击【开发工具】?【控件】?【设计模式】取消该命令的选中状态后,可以测试ActiveX控件的效果。当使用ActiveX控件时,通常在设计模式与非设计模式间频繁切换。

1.4.3确定正在使用哪种类型的控件

如果在工作表中同时创建了同种类型的表单控件和ActiveX控件(例如【命令按钮】控件),然后将它们的名称修改为相同的。那么仅靠观察它们是很难分辨出哪个是表单控件,哪个是ActiveX控件,通过以下两种方法将很容易辨认表单控件和ActiveX控件: 右键单击控件,如果在弹出菜单中包含【指定宏】命令,那么该控件是表单控件,如图1-24所示。

右键单击控件,如果在弹出菜单中包含【属性】命令,那么该控件是ActiveX控件,如图1-25所示。

图1-24 包含【指定宏】命令的是表单控件图1-25 包含【属性】命令的是ActiveX控件

1.4.4正确选择两种类型的控件

在工作表中添加控件后,可能您发现有时很难准确选择想要操作的控件。例如,对于表单控件,如果未将鼠标移动到控件边框上,那么单击后可能就无法选择这个控件,而只是进行控件的编辑状态。而对于ActiveX控件,如果当前未处于Excel的设计模式,那么当单击ActiveX控件时,可能就会执行某个操作。

如果想要正确选择所需的控件,那么需要注意以下两点:

要选择表单控件,应该确保单击控件边框,该边框显示为点样式边框而非文字边框,如图1-26所示。然后右键单击表单控件,在弹出菜单后按Esc键,即可选中

表单控件。

要选择ActiveX控件,应确保Excel处于设计模式。检查【开发工具】?【控件】?【设计模式】命令是否被选中。

图1-26 表单控件的点样式边框(左)和文字边框(右)

ExcelVBA用户窗体编程基础

ExcelVBA用户窗体编程基础 概述 当使用MsgBox函数和InputBox函数不能满足与用户交互的需求时,您能使用用户窗体来自定义对话框。您能使用用户窗体来显示所输入的数据,您甚至能使用用户窗体创建一个完整的用户界面,而不会让用户接触到电子表格本身。 您在Windows对话框中所看到的大多数控件都能在用户窗体中实现——命令按钮,选项按钮,复选框,文本框,组合框——加上一些其它不常用的控件像图像,日历,等等。 本文介绍了用户窗体的基本概念,并介绍了使用用户窗体的常用技术。其中,也讲解了一些最通用的思路。在文章中列举了一个包含所有过程的完整的示例文件,以及实现这些过程的代码,让您能在实践中看到所有工作的基本原理和方法。 本文包含以下内容: ● 基本的用户窗体操作 ● 用户窗体和控件的属性 ● 一个用户窗体的生命周期 ● 用户窗体和控件的事件 ● 问题1:如何在用户窗体间传递数据? ● 问题2:如何找到我的窗体中的某类控件? ● 问题3:如何获取数据到列表框中? ● 问题4:如何为循环创建进度条? ● 一个完整的用户窗体综合示例 基本的用户窗体操作 ?创建一个窗体。打开VBE编辑器(选择菜单“工具——宏——Visual Basic编辑器”或按Alt+F11组合键),选择菜单“插入——用户窗体”,或者在工程窗口中单击右键,从弹出的快捷菜单中选择“插入——用户窗体”,即可创建一个窗体。 ?添加控件。当你创建了一个窗体后,将会显示一个名为“控件工具箱”的浮动工具箱(如果没有该工具箱的话,您可以从视图菜单中找到它),其中显示了最普遍的控件类型。单击您想要的控件,拖动它到您的用户窗体中。 ?更多的控件。有一些更多的可用的控件,您可以在控件工具箱中单击右键,从中选择“附加控件”,您能添加日历、电子表

第6章 控件与用户窗体代码【超实用VBA】

第6章控件与用户窗体 范例67 文本框只能输入数值 Private Sub TextBox1_KeyPress(ByVal KeyANSI As MSForms.ReturnInteger) With TextBox1 Select Case KeyANSI Case Asc("0") To Asc("9") Case Asc("-") If InStr(1, .Text, "-") > 0 Or .SelStart > 0 Then KeyANSI = 0 End If Case Asc(".") If InStr(1, .Text, ".") > 0 Then KeyANSI = 0 Case Else KeyANSI = 0 End Select End With End Sub Private Sub TextBox1_Change() Dim i As Integer Dim Str As String With TextBox1 For i = 1 To Len(.Text) Str = Mid(.Text, i, 1) Select Case Str Case ".", "-", "0" To "9" Case Else .Text = Replace(.Text, Str, "") End Select Next End With End Sub

范例68 限制文本框的输入长度 Private Sub TextBox1_Change() TextBox1.MaxLength = 6 End Sub 范例69 验证文本框输入的数据 Private Sub CommandButton1_Click() With TextBox1 If (Len(Trim(.Text))) = 15 Or (Len(Trim(.Text))) = 18 Then Cells(Rows.Count, 1).End(xlUp).Offset(1, 0) = .Text Else MsgBox "身份证号码错误,请重新输入!" End If .Text = "" .SetFocus End With End Sub 范例70 文本框回车自动输入 Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer) Dim r As Integer r = Cells(Rows.Count, 1).End(xlUp).Row With TextBox1 If Len(Trim(.Text)) > 0 And KeyCode = vbKeyReturn Then Cells(r + 1, 1) = .Text .Text = "" End If End With End Sub 范例71 文本框的自动换行 Private Sub UserForm_Initialize() With TextBox1 .WordWrap = True

使用窗体控件

第2章使用窗体控件 课堂练习:为控件创建事件处理程序 5)传递给这个事件处理程序的第二个参数(e)的目的是什么? 答:参数e包含事件数据。它是一个EventArgs 对象(实际不包含事件数据的基类),或者是一个派生类(像MouseEventArgs)的实例。要查看派生类的完整列表,请在Visual Studio .NET帮助文档中使用短语“EventArgs 类”进行查找,然后点击链接转到“派生类”。 ●为Click 事件创建一个事件处理程序。 3)上面的双击动作为什么创建了一个Click 事件处理程序? 答:当在设计视图中双击一个控件时,IDE会自动为默认事件创建一个事件处理程序。课堂练习:创建和使用ToolBar控件 8)为什么不能向ToolBar 按钮添加图像呢? 答:ToolBar 控件将ImageList 控件作为图像源。使用ToolBar 控件的ImageList 属性指定Toolbar 将从哪个ImageList 控件获取图像。 13)运行应用程序。单击工具栏按钮时有事情发生吗?必须处理什么事件以响应单击ToolBar按钮? 答:ToolBar 的ButtonClick事件用来处理ToolBar按钮的单击。ToolBarButtonClickEventArgs 用来确定单击了哪个按钮。 课堂练习:在运行时添加和移除控件 ●添加新控件 6)为什么decimalCheckBox 出现在GroupBox1控件的左上角? 答:控件位置属性的默认坐标X和Y的值均为零。 课堂练习:在运行时更新菜单 ●使用另一个MainMenu 9)什么时候能在一个应用程序中使用多个MainMenu 控件? 答:在应用程序的上下文改变或者应用程序有多种状态时,使用(显示)多个MainMenu 对象会很有帮助。 ●将一个ContextMenu 分配给一个控件。 5)如何找出哪个控件与ContextMenu 有关联? 答:ContextMenu.SourceControl 属性获取显示快捷方式菜单的控件。 ●找出与ContextMenu关联的控件

Office 2007 Word窗口组成

Office 2007 Word 窗口组成 用户在对文档的编辑过程中,可以通过使用Word 窗口中不同的命令,来完成一些操作,从而达到自己满意的效果。下面,我们来逐一介绍窗口的组成部分,以及各部分的功能。 1.标题栏 Word 2007窗口最顶端的一栏被称为标题栏。它由Office 按钮、快速访问工具栏和窗口的控制按钮(最小化按钮、最大化按钮和关闭按钮)组成,并显示了当前编辑的文件名称和文件格式。 ● Office 按钮 该按钮位于Word 2007程序的左上角。单击Office 按钮,在弹出的菜单中,不仅包括打开、保存和打印等基本命令外,还添加了准备和发布等新命令。用户可以通过执行不同的命令,来完成不同的操作。 ● 快速访问工具栏 默认情况下,快速访问工具栏显示在Office 按钮的右侧,它包含一组独立于当前所显示选项卡的命令,是一个可自定义的工具栏,用户可以在快速访问工具栏上放置一些最常用的命令。默认情况下,快速访问工具栏上只包含三个按钮,其名称和功能如表2-1所示: 表2-1 快速访问工具栏按钮名称及功能表 如果用户不希望快速 访问工具栏出现在当前位置,可以右击快速访问工具栏,执行【在功能区下方显示快速访问工具栏】命令,即可将快速访问工具栏移动的功能区下方,如图2-2所示。 图2-2 快速访问工具栏下方显示 ● 窗 口控 制按 技 巧 用户也可以单击【自定义快速访问工具栏】按钮,执行【在功能区下方显示】命 令,将快速访问工具栏置于功能区下方。 提 示 单击【自定义快速访问工具栏】按钮,在其列表执行不同的命令,可以为其添加或删除其他命令按钮。 在功能区下方显 示 执行

C#在主窗体Panel中添加新的窗体

在主窗体Panel中添加新的窗体(C#,winform开发) 本文的要写的是如何将窗体(Form)添加到panel中。 为什么要这样呢? 1)如果用tab控件,整个窗体的控件太多,不易于我们编程; 2)可以更灵活的控制窗体的布局。 我想你一定看过这样的配制信息窗体吧(迅雷的配置页面)。 在你的项目开发中,是否也希望做出做出这种效果呢?应该如何设置呢?单击窗体的左边的按钮,窗体右边的内容会根据单击的按钮变化. 开始是想到的设置思路很简单,主窗体(如上图),右边放置一个Panel控件.然后根据单击的按钮将子窗体显示在Panel控件上.在按钮的单击事件中加入下面的代码:private void button1_Click(object sender, EventArgs e) {ChildForm child = new ChildForm(); this.panel1.Controls.Add(child); child.Show(); }运行程序显示“不能将顶级控件添加到一个控件上”出现“不能将顶级控件添加到一个控件上”错误怎么处理?在代码中加入 child.TopLevel = false;OK.新问题又出现了.我们不希望子窗体的标题和边筐也显示在父窗体中,再添加如下代码.

child.FormBorderStyle = FormBorderStyle.None;现在的感觉是不是舒服多了.但是还隐藏着一个新问题.怎样动态设置子窗体的Size、Location等呢?我希望在调整父窗体大小时,Panel1中子窗体的大小也跟随动态自动调整 .需要加入下面的事件 private void panel1_Resize(object sender,System.EventArgs e) { try { this.child.ClientSize=new System.Drawing.Size(panel1.Size.Width,pa nel1.Size.Height); } catch(System.Exception Er) { MessageBox.Show(Er.ToString()); } }编译无错,执行时(Error:未将对象引用设置到对象的实例) 但连续点了4个一样的错误提示确认后,程序却可以正常执行,并且form1调整窗体大小form2也可以随之响应了。 此计不行,又生一计.我们可以把子窗体当成一个控件,设置Dock属性不就行了吗?赶快测试一下:private void button1_Click(object sender, EventArgs e) {ChildForm child = new ChildForm(); child.TopLevel = false; child.Dock = System.Windows.Forms.DockStyle.Fill; child.FormBorderStyle = FormBorderStyle.None; //child.Parent = this.panel1; this.panel1.Controls.Add(child); child.Show(); }

窗体中的常用控件 单选3分

窗体中的常用控件单选3分 1.在计算机控件中,每个表达式前都要加上("=") 2.用于显示更新数据库中的字段的控件类型是(绑定型) 3.关于控件的叙述,(选项组不能设置为表达式)的说法正确 4.(表)不是窗体控件 5.纵栏式窗体同一时刻能显示(一条记录) 6.无论是自动创建窗体还是报表,都必须选定要创建该窗体或报表基于的(报表) 7.没有数据来源的控件类型是(非绑定型) 8.关于控件的叙述,(在窗体设计视图窗口中的工具箱中只能看到部分控件)说法错误 9.能够接受数字型数据输入的窗体控件是(文本框) 10.在教师信息输入窗口中,为职称字段提供"教授""副教授""讲师"等选项供用户直接选择,应使用控件是(组合框) 11.要用文本框来显示当前日期,应设置文本框的控件来源属性是(=Data()) 12.窗口事件是指操作窗口时所引发的事件,(取消)不属于窗口事件 13.如果想再加入控件时,控件自动与网格对其,则应在加入控件前,执行"格式(对其网格)"命令 14.当窗体的内容比较多无法在一页中全部显示时,可以使用(选项卡)进行分页,若要进行页面切换,用户只需单击选项卡上的标签即可 15.(选项组)是用来显示一组有限选项集合的控件 16.在学生表中使用"照片"字段存放相片,当使用向导为该表创建窗体时,照片字段使用的默认控件是(绑定对象框) 17.为窗体上的控件设置Tab键的顺序,应选择属性对话框中的(数据选项卡) 18.使用窗体设计视图,不能创建(报表) 19.如果在窗体上输入的数据总是取自某一个表或查询中记录的数据,或者取自某固定内容的数据,可以使用(组合框或列表框)控件 20.(只要单击选项组中所需的值,就可以为字段选定数据值)的说法正确 21.(命令按钮)代表一个或一组操作 22.(可以向组合框中输入新值,而列表框不行) 23.创建窗体的数据源不能是(报表) 24.若要求在文本框中输入文本时达到密码"*"号的显示效果,则应设置的属性是("输入掩码"属性) 25.(窗体设计器)不是窗体的组成部分 26.关于控件的叙述,(在选项组中每次只能选择一个选项)的说法是正确的 27.

VB窗体和控件2

VB 窗体和控件专练(二)2013.4.26 1、_____是由Visual Basic提供的一种专门的子程序,由对象本身所具有,反映该 对象功能的内部函数或过程。 a) 文件 b) 属性 c) 方法 d) 窗体 2、在列表框中当前被选中的列表项的序号是由下列________属性表示的。 A.List B.Index C.Listlndex D.False 3、为组合框Combol增加一个数据项"计算机",下列命令正确的是________ https://www.doczj.com/doc/717113323.html,bol.Text="计算机" https://www.doczj.com/doc/717113323.html,bol.ListIndex="计算机" https://www.doczj.com/doc/717113323.html,bol.Addltem "计算机" https://www.doczj.com/doc/717113323.html,bol.ListCount="计算机" 4、执行了下面的程序后,组合框中数据项的值是________。 Private Sub Form_Click() For i=1 To 6 Combol.AddItem i Next i For i=1 To 3 Combol.RemoveItem i Next i End Sub A.1 5 6 B.2 4 6 C.4 5 6 D.1 3 5 5、要清除列表框中所有的列表项时,应使用________ 方法。 A.Remove B.Clear C.Removeltem D.Move 6、引用列表框(Listl)最后一个数据项应使用________。 A.Listl.List(Listl.ListCount) B.List1.List(List1.ListCount-1) C.Listl.List(ListCount) D.Listl.List(ListCount-1) 7、窗体上有一个按钮和一个列表框(Sorted属性为false),执行下列过程后的输出结果 Private Sub Command1_Click() List1.AddItem "China" List1.AddItem "Great" List1.AddItem "Is", 1 List1.AddItem "!", 3 Print List1.List(2) End Sub A.Great B.China C.Is D.! 8、 ______对象不能响应Click事件。 a) 列表框 b) 图片框 c) 窗体 d) 计时器 9、没有Caption属性的控件是_____。 a) Label b) OptionButton c) Frame d) ListBox 10、使窗体自动向下移动的语句是Move_____。 a) Left, Top+100 b) Top+100 c) Top+100 d) Top=Top+100 11、RGB函数通过红、绿、蓝三基色混合产生某种颜色,其语法为RGB(红、绿、蓝), 括号中红、绿、蓝三基色的成分使用0-255之间的整数。若使用3个滚动条分别 输入3种基色,为保证输入数值有效,则应设置_____属性。 a)Max和Min b) SmallChange和LargeChange c) Scroll和Change ) Value 12、_____控件可以使用SetFocus()方法。 a) Frame b) Label c) TextBox d) Timer 13、滚动条单击边上的箭头按钮移动的大小由_____设定。 a) Change b) SmallChange c) Scroll d) Tabstop 14、ControlBox属性只适用于窗体,当窗体的______属性设置为0-None时,则 ControlBox属性不起作用。 a) Borderstyle b) Autoredraw c) Windowstate d) Enabled 15、确定复选框是否选中,可访问的属性是________。 A.Value B.Checked C.Selected D.Caption 16、用InputBox函数可帮助生成_______。 a) 消息框 b) “保存”对话框 c) 简单输入框 d) “颜色”对话框 17、在程序运行期间,当滚运条的滑块被拖动时,则立即触发的滚动条事件是 ________ 。 A.Click B.Chang C.Scroll D.DblClick 18、当滚动条位于最左端或最上端时,Value属性被设置为________。 A.Min B.Max C.Max和Min之间 D.Max和Min之外 19、不能触发滚动条Change事件的操作是________。 A.拖动滚动块 B.单击两端箭头 C.单击滚动块 D.单击箭头与滚动块之间的滚动条 20、单击滚动条的滚动箭头时,产生的事件是________。 A.Click B.Scroll C.Change D. Move 21、能触发滚动条Scorll事件的操作是________。 A.拖动滚动条中滑块 B.单击滚动条中滑块 C.单击滚动条两端箭头 D.单击箭头与滑块之间的滚动条 22、为了在列表框中使用Ctrl和Shift键进行多个列表项的选择,应将列表框的Multiselect 属性设置为________。 A.0 B.1 C.2 D.3 23、Inputbox函数的参数中,必选参数Prompt的作用是_____。 a) 输出信息 b) 定义提示信息 c) 定义隐含信息 d) 定义输入的位置 24、若要获得滚动条的当前值,可访问的属性是________ A.Text B.Value C.Max D.Min 25、窗体上有一个图片控件和一个按钮控件,下列程序执行的结果是________ Private Sub Command1_Click() Picture1.Picture = LoadPicture("c:\1.jpg") Picture1.Cls Picture1.Print "Test" End Sub A.窗体无显示,图片框显示图片和文字Test B.窗体上出现Test文本,图片框无显示 C.窗体上出现Test文本,图片框显示图片1.Jpg D.窗体无显示,图片框只显示Test文字 26、设置命令按钮的属性时,只有将________属性设置为1,Picture属性才有效,否则无效。 A.Style B.Caption C.Enabled D.DefauIt 27、在程序代码中将图片文件mypic.jpg装入图片框Pictrue1的语句是________。 A.Picture1.Picture="mypic.jpg" B.Picture1.Image="mypic.jpg" C.Picture1.Picture=LoadPicture("mypic.jpg") D.LoadPicture("mypic.jpg") 28、下列对象不能响应Click事件的是________。 A.列表框 B.图片框 C.窗体 D.计时器 29、定时器的Interval属性以________ 为单位指定Timer事件之间的时间间隔。 A.分 B.秒 C.毫秒 D.微秒 30、在窗体上有一个文本框控件,名称为TextTime;一个计时器控件,名称为Timer1。 要求每一秒在文本框中显示一次当前的时间。程序为: Private Sub Timer1_________ TextTime.text=Time End Sub 在下划线上应填入的内容是:________。 A.Enabled B.Visible C.Interval D.Timer 31、为启动定时器控件,需要设置定时器的属性是________。 https://www.doczj.com/doc/717113323.html, B.Interval C.Left D.Top 32、若想使时钟控件每隔0.25秒触发一次Timer()事件,则可将Intenral属性值设为________ A.Interval=0.25 B.InterVal=25 C.Interval=250 D.InterVa1=2500

VisualStudio_各个控件详解

.NET控件详解 (2011-07-2022:44:33) 转载 标签:it分类:C#语言 微软的.net控件详解,没有那个比这个更权威的了网址: https://www.doczj.com/doc/717113323.html,/QuickStartv20/aspnet/doc/ctrlref/standard/multiview. aspx 参考资料: https://www.doczj.com/doc/717113323.html,/QuickStartv20/aspnet/doc/ctrlref/standard/multiview. aspx 网易学院:https://www.doczj.com/doc/717113323.html,/special/000915SN/stvs2005.html 参考资料:https://www.doczj.com/doc/717113323.html,/tianine5/blog/item/1470aa35f46bad8aa61e1285.html .NET控件命名规范 备注 控件名称简写(前 缀) Label lbl标签 TextBox txt文本框 Button btn按钮 LinkButton lnkbtn

ImageButton imgbtn ListBox lst列表框DropDownList ddl DataGrid dg DataList dl CheckBox chk CheckBoxList chklst RadioButton rdo单选按钮RadioButtonList rdolst Image img图片Panel Pnl-面板Calender cal AdRotator ar Table tbl RequireFieldValidator rfv CompareValidator cv RangeValidator rv RegularExpressionValidatorrev ValidatorSummary vs CrystalReportViewer rptvew ComboBox cbo组合框

向用户窗体中添加控件

若要向用户窗体中添加控件,请在“工具箱”中查找要添加的控件,将该控件拖到窗体上,然后拖动控件上的调整柄,直至控件的外边框成为所需的大小和形状。 注意如果将控件(或若干“成组”的控件)从窗体拖回到“工具箱”,将创建该控件的一个模板,该模板可被重新使用。对于实现应用程序的标准界面,这是非常有用的功能。 向窗体添加了控件之后,可用 Visual Basic 编辑器中“格式”菜单上的命令调整控件的对齐方式和间距。 上页:Excel VBA教程:向文档中添加控件下页:Excel VBA教程:应用程序对象事件 Excel VBA Excel VBA教程:应用程序对象事件Excel VBA教程:图表对象事件 Excel VBA教程:控件和对话框事件Excel VBA教程:在某一 Microsoft Office 应用程序中控制其他 Microsoft Office 应 用程序 Excel VBA教程:创建自定义对话框Excel VBA教程:新建工作簿 Excel VBA教程:创建“用户窗体”Excel VBA教程:显示自定义对话框 Excel VBA教程:获取有关 Macintosh 关键 字的帮助 Excel VBA教程:在单元格区域中循环Excel VBA教程:如何引用单元格和区域Excel VBA教程:初始化控件属性Excel VBA教程:打开工作簿Excel VBA教程:QueryTable对象事件 Excel VBA教程:引用工作表上的所有单元格Excel VBA教程:用 A1 样式记号引用单元格 和单元格区域 Excel VBA教程:用编号引用单元格Excel VBA教程:相对于其他单元格来引用单 元格 Excel VBA教程:用 Range对象引用单元格Excel VBA教程:用快捷记号引用单元格

Word控件工具箱的使用和实例

Word控件工具箱的使用和实例(多选题制作) 2010-07-27 07:41:48 来源:IT部落窝浏览:4246次 word中的控件工具箱是做什么的,如何使用? Word的控件工具箱在哪里呢?单击菜单“视图——工具栏””项中点“控件工具箱”就可以调出控件工具箱。 Word控件工具箱是做什么的呢?word控件工具箱主要在VBA中窗体内使用,每个控件都是一个工具模块,具体功能通过设置属性和写入VB代码来实现。有些控件也可以在w ord文档中使用。 word控件工具箱其实就是VBA的可视化界面,需要掌握一定的VBA知识,懂一些代码,才能更好的驾驭Word的控件工具箱。 举一个很简单的例子,打开word后,打开控件工具箱,双击命令按钮,页面上就会多出一个Commandbutton,双击“commandbutton”,在end sub上面加这样一行MsgBox 保存退出VBA编辑器,单击一下控件工具箱上第一个钮退出设计模式,现在单击一下页面上的Commandbutton按钮,就会弹出一个提示框 下面我们就利用Word的控件工具箱来制作一道多项选择题。下面是具体操作步骤: 第一步,启动Word,新建一空白文档,输入“计算机的软件系统包括( )”并根据情况设置好字体、字号和颜色。 第二步,依次单击菜单栏中的“视图→工具栏→控件工具箱”命令,在弹出的控件工具箱中选中“复选框”按钮,然后在文档拖拉出一个复选框。 第三步,在拖拉出的复选框(checkbox1)上单击鼠标右键选择属性,打开“属性”对话框,

将其中“名称”修改为“duoxt11”,“Caption”后面的字符修改为题目相应选项字符(如“系统软件”),然后再设置“font”选项设置合适的字体、字号等。其他属性可采用默认值。 第四步,将上面设置好的复选框复制三个,分别将“名称”修改为“duoxt12”、“duoxt13”、“duoxt14”,“Caption”属性分别修改为“应用软件”、“杀毒软件”和“工具软件”。 第五步,选择“控件工具箱”的“命令按钮” ,在文档中添加一个按钮,和上面3中的操作一样将其“名称”修改为“duopd11”,“caption”属性修改为“判断”(也可以修改“font”属性来设置字体、字号等)。然后双击该按钮,进入“VisualBasic编辑器”状态,将下述代码输入到Priv ate Sub Private Sub duopd11_Click()和End Sub代码中间,输入完成后,关闭窗口返回。 If duoxt11.Value = True And duoxt12.Value = True And duoxt13.Value = False And duoxt14.Value = False Then MsgBox "恭喜你,选择正确。", vbOKOnly, "结果" Else If duoxt11.Value = True And duoxt12.Value = False And duoxt13.Value = False And duoxt14.Value = False Or duoxt11.Value = False And duoxt12.Value = True And duoxt13.Value = False And duoxt14.Value = False Then MsgBox "选对了一个,还有一个,再努力一下就胜利了。", vbOKOnly, "提示" Else MsgBox "选择错误!还需要继续努力啊!", vbOKOnly, "提示" End If End If

C#中用户控件与窗体间的消息传递

C#中用户控件与窗体间的消息传递 如果在c#中实现用户定义控件内的事件挂勾到调用的窗体事件中 我们都知道在https://www.doczj.com/doc/717113323.html,开发中,如果使用用户定义控件可以有效的进行程序的模块化。其实在.net 的winform中也是可以使用的。 细节如下: 1、新建应用程序windowsapplication1。 2、添加新的用户控件userlogin。(如图user) 3、定义用户属性 //定义属性 public string username { get{return username;} set{username=value;} } public string password { get{return password;} set{password=value;} } 4、定义委托 //定义委托 public delegate void btnokclickeventhander(object sender,eventargs e); public delegate void btncancelclickeventhander(object sender,eventargs e); 5、定义事件 //定义事件 public event btnokclickeventhander btnokclick; public event btncancelclickeventhander btncancelclick 6、事件实现 private void textboxuid_textchanged(object sender, system.eventargs e) { username=this.textboxuid.text; } private void textboxpwd_textchanged(object sender, system.eventargs e) { password=this.textboxpwd.text; } private void buttonok_click(object sender, system.eventargs e) { if (btnokclick!=null)

常用窗体控件

常用窗体控件: String str=””; Foreach(Control item in this.Controls) { If(https://www.doczj.com/doc/717113323.html,.IndexOf(“checkBox”)>0) { CheckBox ck=(CheckBox)Item; If(ck.Checked) { Str=ck.Text+”,”; } } }

高级窗体控件: 1.菜单控件MenuStrip 使用步骤: ①在Windows窗体中添加一个MenuStrip控件 ②单击该控件的Items属性,弹出“项集合编辑器”对话框 ③可以添加MenuItem子项。子项的子菜单 选择其“MenuItem”选项,单击其 DropDownItems属性,弹出相接对话框 ①选中要添加右键功能的Form或者控件,打开控件的设计页面 ②从工具箱中找到ContextMenuStrip控件,将这个控件拖曳到Form或者控件的设计页 面上。这时系统就会在这个页面下面自动创建一个contextMenuStrip1控件,如果你想在这个页面添加多个菜单,那么你也可以拖曳多个这种控件到设计页面上。 ③按照你的要求将这些ContextMenuStrip控件改成你需要的名称。然后, 选择需要右 键弹出菜单的页面,比如你当前编辑的页面中有一个DataGrid,一个T reeList,而你想分别为这两个控件添加不同的右键菜单。那么你就可以先选择DataGrid控件,然后在这个控件的属性中找到ContextMenuStrip属性,点击该属性,系统会自动查找你拖曳到当前页面的所有ContextMenuStrip控件并将这些控件罗列在这个属性的下拉菜单中。你可以选择一个你预先定义好的ContextMenuStrip控件。这样就为这个DataGrid控件设置了右键菜单。其他控件也使用同样的方法添加。 ④定义你的菜单,在为控件分配完菜单之后,你就可以定义单个的菜单。这时你可以 选中一个ContextMenu控件。系统会自动在编辑页面的上面现一个可编辑的动态菜

如何使用 Excel 中的工作表窗体控件

如何使用Excel 中的工作表窗体控件 Microsoft Excel 提供了多个对话框工作表控件,您可以使用这些工作表控件来帮助选择数据。例如,下拉框、列表框、微调框和滚动条都可用于选择列表中的项目... 如何设置列表、单元格链接和INDEX 在新工作表中的H1:H20 区域中键入下列项目: H1:溜冰鞋 H2:VCR H3:桌子 H4:杯子 H5:汽车 H6:洗衣机 H7:火箭发射器 H8:自行车 H9:电话 H10:蜡烛

H11:糖果 H12:扬声器 H13:衣服 H14:毯子 H15:干衣机 H16:吉他 H17:干衣机 H18:工具箱 H19:VCR H20:硬盘 在单元格A1 中,键入以下公式: =INDEX(H1:H20,G1,0)列表框示例 要在Microsoft Office Excel 2003 和早期版本的Excel 中添加列表框,请单击“窗体”工具栏上的“列表框”按钮。然后,创建包含单元格B2:E10 的列表框。如果未显示“窗体”工具栏,请指向“视图”菜单上的“工具栏”,然后单击“窗体”。要在Excel 2007 中添加列表框,请依次单击“开发工具”选项卡、“插入”,然后单击“窗体控件”部分中的“列

表框”。 右键单击列表框,然后单击“设置控件格式”。键入以下信息,然后单击“确定”。 要指定列表的区域,请在“数据源区域”框中键入H1:H20。要在单元格G1 中键入数值(根据在列表中选择的项目),请在“单元格链接”框中键入G1。注意:INDEX() 公式使用G1 中的值返回相应的列表项目。 在“选定类型”下,确保选择“单选”选项。单击“确定”。注意:仅在您使用Microsoft Visual Basic for Applications 过程返回列表值时,“复选”和“扩展”选项才有用。另请注意,使用“三维阴影”复选框可使列表框具有三维外观。列表框应显示项目列表。要使用列表框,请单击任意单元格,这样不会选择列表框。如果您单击列表中的某一项目,单元格G1 将更新为一个数字,以指示所选项目在列表中的位置。单元格A1 中的INDEX 公式使用此数字显示项目的名称。组合框示例 要在Excel 2003 和早期版本的Excel 中添加组合框,请单击“窗体”工具栏上的“组合框”按钮。要在Excel 2007 中添加组合框,请依次单击“开发工具”选项卡、“插入”,然后单击“窗体控件”部分中的“组合框”。

第二章 窗体与基本控件

第二章窗体与基本控件 教学内容: 一、窗体 窗体的属性、事件、方法及应用举例 二、基本控件以及对控件的格式化 命令按钮、标签、文本框等基本控件属性、事件与方法,基本控件的添加/删除、调整控件的大小与位置、窗体与控件的布局调整 三、简单语句 Print方法、人机对话函数(InputBox,MsgBox,Cls,End,Stop,Rem语句)、基本格式、功能、举例说明。教学要求: 了解:控件的格式化 掌握:常用控件(窗体、文本框、标签、命令按钮)的常用属性、事件和方法、Print方法、Inputbox、Msgbox、Cls、End语句的使用方法 §2.1 窗体 1.窗体的基本属性 Name 对象的名称 指定窗体的名称,在程序代码中用这个名称引用该窗体。 第一个窗体的名称缺省值为form1,通常要给name属性设置一个有实际意义的名称,便于识别。 Caption 对象的标题 设置窗体标题栏显示的文本。 Height 对象的高度 Width 对象的宽度 设置窗体的高度和宽度。单位为Twip。 1Twip=1/20点=1/1440英寸=1/567cm Enabled 对象的激活或禁止 用来设置窗体是否响应鼠标或键盘事件。缺省时为True,窗体能够对用户产生的事件作出反映。 Visible 对象的可见性 设置窗体是否显示。True(窗体可见),False(运行时,窗体及其上面的对象都将被隐藏) Top 对象的顶边距离 Left 对象的左边距离 Backcolor 设置窗体的背景颜色; Forecolor 设置窗体的前景颜色。 Font 设置窗体上字体的样式,大小,字形等。 Picture 设置在窗体中显示的图片。 注意:要在程序中设置该属性的值,需要使用LoadPicture函数。 WindowStare属性设置窗体运行时的大小状态。有三个可选值: 0-Normal 窗体大小由Height和Width属性决定,此值为缺省值; 1-Minimized 窗体最小化成图标; 2-Maximized 窗体最大化,充满整个屏幕。 2.窗体的事件和方法 事件: Click(单击)事件:单击鼠标左键时触发 DblClick(双击)事件:双击窗体时触发 Load(装入)事件:窗体被装入工作区时触发 方法: Print 格式:[对象名.] Print [表达式列表][;|,] 功能:在对象上输出信息 例如:Form1.Print “VB”;”程序设计” Cls 格式:[对象名.] Cls

窗体-工具栏控件和控件工具箱控件基础

窗体”工具栏控件和“控件工具箱”控件基础 在工作表菜单“视图——工具栏”或在菜单栏点击右键,在下拉菜单中有两个内容比较相似工具栏,即“窗体”工具栏和“控件工具箱”工具栏。 其中,“窗体”工具栏有16个命令按钮,依次为:标签、编辑框,分组框、按钮、复选框、选项按钮,列表框、组合框,组合式列表编辑框、组合式下拉编辑框,滚动条、微调项,控件属性、编辑代码,切换网格、执行对话框。 “控件工具箱”是提供ActiveX控件的工具栏,有15个命令按钮,依次为:设计模式、 属性、查看代码,复选框、文本框、命令按钮、选项按钮、列表框、组合框、切换按钮、数值调节钮、滚动条、标签、图像,其他控件。其中某些控件看上去与“窗体”工具栏中的控件相同,功能也相似,还有一些控件(例如,切换按钮和图像控件)在“窗体”工具栏 上不可用。“控件工具箱”还包含通过其他程序安装的自定义ActiveX控件,例如:通过Microsoft Internet Explorer安装的Active Movie控件。 一、一些概念 控件是放置于窗体上的一些图形对象,可用来显示或输入数据、执行操作或使窗体更易于阅读。这些对象包括文本框、列表框、选项按钮、命令按钮及其他一些对象。控件提供给用户一些可供选择的选项,或是某些按钮,单击后可运行宏程序。 Microsoft Excel 有两种类型的控件。ActiveX控件即控件工具箱控件适用于大多数情况, 与 Microsoft Visual Basic for Applications (VBA) 宏和 Web 脚本一起工作。“窗体”工具 栏上的控件与 Excel 5.0 以后的 Excel 早期版本都是兼容的,并且能在 XLM 宏工作表中使用。 ActiveX控件一般为完全可编程的对象,开发者能够使用它们在原应用程序基础上创建自 定义的应用程序。 二、Excel中的两类控件 ◆窗体工具条中的控件 这类控件在Excel工作表中是可用的,它们不是ActiveX控件,与控件工具箱中的控件不 一样,并且不如ActiveX控件灵活。但是,对大多数Excel用户来说,这种差异基本上不 妨碍他们对控件的使用。 您如果需要在工作表中录制所有的宏并指定给控件,但又不愿在 VBA 中编写或更改任何 宏代码,那么您可以使用“窗体”工具栏中的控件。您还可以在图表工作表中使用“窗体”工具栏上的控件。 可以在工作表窗体上使用这些控件,而其他用户则可以使用Excel来填写工作表窗体。您 能通过菜单“视图——工具条——窗体”命令打开窗体工具条,接着只需在该工具条中单击您想使用的控件,然后在工作表中单击即可放置控件在工作表中。您能在该控件上单击右键,选择“指定宏”将宏程序指定给控件。如果该控件是一个命令按钮,在您放置控件

Excel中的窗体控件功能非常强大.

Excel中的窗体控件功能非常强大,但有关它们的资料却很少见,甚至Excel帮助文件也是语焉不详。本文通过一个实例说明怎样用窗体控件快速构造出动态图表。 假设有一家公司要统计两种产品(产品X,产品Y)的销售情况,这两种产品的销售区域相同,不同的只是它们的销售量。按照常规的思路,我们可以为两种产品分别设计一个图表,但 更专业的办法是只用一个图表,由用户选择要显示哪一批数据——即,通过单元按钮来选择图表要显示的数据。 为便于说明,我们需要一些示例数据。首先在A列输入地理区域,如图一,在B2和C2分别输入“产品X”和“产品Y”,在B3:C8区域输入销售数据。 一、提取数据 接下来的步骤是把某种产品的数据提取到工作表的另一个区域,以便创建图表。由于图表 是基于提取出来的数据创建,而不是基于原始数据创建,我们将能够方便地切换提取哪一种产 品的数据,也就是切换用来绘制图表的数据。 在A14单元输入=A3,把它复制到A15:A19。我们将用A11单元的值来控制要提取的是哪一种产品的数据(也就是控制图表要描述的是哪一批数据)。现在,在A11单元输入1。在B13单元输入公式=OFFSET(A2,0,$A$11),再把它复制到B14:B19。 OFFSET函数的作用是提取数据,它以指定的单元为参照,偏移指定的行、列数,返回新 的单元引用。例如在本例中,参照单元是A2(OFFSET的第一个参数),第二个参数0表示行偏移量,即OFFSET返回的将是与参照单元同一行的值,第三个参数($A$11)表示列偏移量,在

本例中OFFSET函数将检查A11单元的值(现在是1)并将它作为偏移量。因此, OFFSET(A2,0,$A$11)函数的意义就是:找到同一行且从A2(B2)偏移一列的单元,返回该单元 的值。 现在以A13:B19的数据为基础创建一个标准的柱形图:先选中A13:B19区域,选择菜单“插入”→“图表”,接受默认的图表类型“柱形图”,点击“完成”。检查一下:A13:B19和图表是否确实显示了产品X的数据;如果没有,检查你是否严格按照前面的操作步骤执行。把A11单元的内容改成2,检查A13:B19和图表都显示出了产品B的数据。 二、加入选项按钮 不要第一步是加入选项按钮来控制A11单元的值。选择菜单“视图”→“工具栏”→“窗体”(,点击工具栏上的“选项按钮”,再点击图表上方的空白位置。重复这个过 选择“控件工具箱”) 程,把第二个选项按钮也放入图表。 右击第一个选项按钮,选择“设置控件格式”,然后选择“控制”,把“单元格链接”设置为 A11单元,选中“已选择”,点击“确定”,如图二。 把第一个选项按钮的文字标签改成“产品X”,把第二个选项按钮的文字标签改成“产品Y”(设置第一个选项按钮的“控制”属性时,第二个选项按钮的属性也被自动设置)。点击第一个选项按钮(产品X)把A11单元的值设置为1,点击第二个选项按钮把A11单元的值设置为2。 点击一下图表上按钮之外的区域,然后依次点击两个选项按钮,看看图表内容是否根据当

相关主题
文本预览
相关文档 最新文档