第1章 使用窗体和控件
- 格式:pdf
- 大小:1.05 MB
- 文档页数:28
Excel中的窗体控件和ActiveX控件2009年1月21日评论发表评论Excel中有两种不同的控件。
一种是窗体工具条控件(Forms toolbar controls),通过点击菜单“视图”->“工具栏”,在弹出菜单上选择“窗体”,将出现“窗体”工具条控件窗口。
另外一种是ActiveX控件,通过点击菜单“视图”->“工具栏”,在弹出菜单上选择“控件工具箱”(也可以选择“Visual Basic”,然后再在工具栏上选择“控件工具箱”),将出现“控件工具箱”窗口。
窗口工具条控件是Excel5和Excel95留下来的东西(在Excel 97后的版本中,添加一个Dialog Sheet后,将可以看到这个窗体工具条窗口),从Excel 97开始,Dialog Sheet被UserForm代替,并且开始使用ActiveX控件。
从某些角度来讲,窗体控件甚至比ActiveX控件更有优势。
1. 如果你需要在Chart工作表中添加控件,只能使用窗体工具条控件。
2. 更加方便使用VBA代码创建窗体控件以及定义事件过程。
3. 窗体控件的事件过程可以放在标准模块,可以使用任何有效的VBA过程名称,可以在控件创建之前就创建事件过程。
4. 可以给多个控件赋于一个相同的过程。
5. 可以使用Application.Caller来获取窗体控件的名称。
窗体控件比ActiveX控件简单,基本上只有一个Click事件。
而ActiveX控件可以响应丰富的事件,ActiveX控件的事件只能放在控件所在的类模块(工作表模块)或窗体模块。
过程名称由控件名和事件名称组成。
如果你在控件不存在的时候就创建这个控件的事件过程,然后再在代码中引用这个控件,将会出现编译错误,所以必须使用代码创建事件过程。
在VBA中控制窗体控件的方法有点不同,可以使用对象名称,但这些对象名称在对象浏览器中被隐藏,这样输入代码时没有方法和属性提示(你可以在“对象浏览器”的“类”一栏中单击右键,然后选择“显示隐含成员”查看这些窗体控件)。
第一章 VB程序设计初步1.1 Visual Basic的发展Visual Basic(以下简称VB)是Microsoft公司于1991年推出Windows应用程序开发工具。
Visual一词具有“可视化的”、“形象化的”的含义,在语言功能方面,VB与早期的Basic语言基本兼容,但由于VB具有良好的图形用户界面(Graphic User interface,即GUI),因此有人称它为可视化的Basic语言。
和Basic语言相比,VB提供的一系列可视化设计工具,大大简化了应用程序界面的设计工作,不仅易学易用,同时其编程系统采用了面向对象、事件驱动机制,非专业人员也可以使用该语言工具方便地完成基于Windows的应用程序开发,因而一经推出,便获得了巨大成功。
从1991年至1997年,微软相继推出了VB1.0,VB2.0,VB3.0,VB4.0及VB5.0版,1998年发布的Microsoft Visual Studio 98中包含了VB6.0,2000年又推出了。
VB 5.0以前的版本主要用于16位应用程序开发,VB6.0则专为32位操作系统设计。
本书主要介绍VB6.0。
VB6.0包括三种版本,分别为学习版、专业版和企业版。
三种版本适于不同层次的用户。
(1)学习版是VB的基础版本,该版本包含了所有VB的标准控件及网格控件、数据绑定控件和Tab对象。
适合初学者用来学习开发Windows应用程序。
(2)专业版为专业编程者提供了一整套功能完备的开发工具,包括了学习版中的全部功能,同时加入了ActiveX 控件、Internet控件和报表控件等。
(3)企业版该版本包含了专业版的全部功能,增加了自动化管理器、部件管理器、数据库管理工具、Microsoft Visual Source Safe面向工程版的控制系统等。
如无特别说明,本书中内容均基于VB6.0企业版作介绍,所有程序在VB6.0企业版下运行通过,大多数程序可以在专业版和学习版中运行。
大一vb第一章知识点归纳在大一VB(Visual Basic)课程的第一章中,我们学习了一些重要的知识点,这些知识点为后续学习VB语言打下了坚实的基础。
本文将对这些知识点进行归纳总结,帮助同学们更好地理解和掌握。
一、VB简介VB是一种基于事件驱动的可视化编程语言,它具有简单易学、功能强大的特点。
VB可以用于开发Windows应用程序,通过拖放控件和编写事件处理程序,实现图形用户界面的设计和功能实现。
二、VB开发环境VB开发环境由VB集成开发环境(VB IDE)和VB运行时库组成。
1. VB IDE:VB IDE是程序员使用的开发工具,它包含VB编译器、代码编辑器、窗体设计器等。
VB IDE提供了方便快捷的开发环境,使得开发VB程序更加高效。
2. VB运行时库:VB运行时库是一组预编译的DLL文件,用于支持VB程序的运行。
它包含了大量的常用函数和控件,能够简化程序的开发过程。
三、VB程序基础1. 程序结构:一个VB程序由模块、过程和语句组成。
模块是程序的最高级别单位,它包含了一系列过程。
过程是一段具有特定功能的代码,可以通过调用来执行。
语句是过程中的基本执行单位,通过语句执行任务。
2. 变量和数据类型:VB中的变量用于存储数据,数据类型决定了变量可以存储的数据种类。
常见的数据类型包括整型、浮点型、字符型等。
3. 控件和窗体:VB程序通过控件和窗体实现用户界面的设计。
控件是用户界面的可视元素,如按钮、文本框等。
窗体是容纳控件的容器,用于组织和布局控件。
四、VB的事件驱动编程VB是一种事件驱动的编程语言,程序的执行通过事件的发生来触发。
1. 事件和事件处理程序:事件是指在程序运行过程中发生的事情,如按钮被点击、鼠标移动等。
事件处理程序是为特定事件编写的代码,用于响应事件的发生。
2. 事件的产生和处理:VB程序通过事件的产生和处理实现用户交互和功能实现。
当事件发生时,VB程序会自动执行相应的事件处理程序。
Visual basic 程序设计习题参考答案第一章Visual basic 程序设计一、选择题二、填空题三、简答题1、简述visual basic 的特点。
(1)具有可视化的设计平台(2)面向对象的设计方法(3)事件驱动的编程机制(4)结构化程序设计语言(5)开放的数据库功能与网络支持2、什么是对象、类、属性、事件和方法?在可视化编程语言中,对象是代码和数据的集合,它可以是窗体和控件,也可以是菜单和数据库等。
描述一个对象有三个基本要素:属性、方法和事件。
类是一组用来定义对象的相关过程和数据的集合,即同类对象的集合和抽象。
属性是描述对象的一组特性。
方法是对象能够执行的动作,它是对象本身内含的函数或过程,用于完成某种特定的功能。
事件是发生在对象上并且能够被对象识别的动作,即由系统预先设置好的、能被对象识别的动作,如Click(单击)、DblClick(双击)、Load(窗体的装载)、KeyPress(按键)、Change(改变)、MouseMove (鼠标的移动)等,每一种对象能识别的事件是不同的5、什么是事件驱动的编程机制?当某个事件(一般由用户操作来触发) 发生时,系统就会自动执行此事件的事件过程。
由事件控制整个程序的执行流程。
事件过程要经过事件的触发才能被执行,这种工作模式称为事件驱动方式。
第二章Visual basic 程序设计基础一、选择题二、填空题第三章数据输入输出一、选择题二、填空题3第四章选择结构和循环结构程序设计一、选择题二、填空题第五章数组一、选择题二、填空题第六章过程一、选择题二、填空题三、简答题1、简述事件过程和通用过程的含义和联系。
5VB应用程序是由过程组成的,过程是完成某种特殊功能的一组独立的程序代码。
VB中的过程有两大类:事件过程和通用过程事件过程是当发生某个事件时,对该事件作出响应的程序段。
事件过程由VB自行声明,用户不能增加或删除。
事件过程是VB 应用程序的主体。
第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.1InputBoxInputBox函数分为两种,一种是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 StringAns = InputBox("请输入", "输入信息")MsgBox "您输入的信息是:" & AnsEnd Sub运行上面的代码,将显示如图1-3所示的对话框。
当用户输入一个内容并单击【确定】按钮,将在一个对话框中显示所输入的内容。
图1-3 使用VB的InputBox函数打开的输入对话框如果在上个例子中用户未输入任何内容或单击【取消】按钮,那么InputBox函数都将返回一个空字符串。
为了强制要求用户输入内容,可以设置一个Do While循环,只要输入的内容为空,那么就一直显示输入对话框等待用户输入,代码如下:Sub GetInfo()Dim Ans As StringDo While Ans = ""Ans = InputBox("请输入", "输入信息")LoopMsgBox "您输入的内容是:" & AnsEnd 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 RangeOn Error GoTo CanceledSet 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 IntegerAns = MsgBox(" 您需要保存当前工作吗?", vbYesNoCancel + vbQuest ion, "是否保存")Select Case AnsCase vbYesActiveWorkbook.Close savechanges:=TrueCase vbNoActiveWorkbook.Close savechanges:=FalseCase vbCancelExit SubEnd SelectEnd Sub运行上面的代码,将显示如图1-8所示的对话框。
根据用户单击不同的按钮,会自动执行相应的操作。
图1-8 使用MsgBox函数的返回值来获取用户的操作1.3创建用户窗体如果感觉使用InputBox和MsgBox创建的对话框过于简单,无法满足使用需要,那么就需要创建真正的用户窗体了。