第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、visual basic 的主要特点:(1)方便的开发环境(2)事件驱动机制2、版本:学习版、专业版、企业版3、Visual的中文含义是可视化,指的是开发windows风格用户界面的方法。
Basic是指初学者通用符号指令代码。
英文全称是:beginners all-purpose symbol instruction code4、退出visual basic 可单击右上角的关闭按钮,也可选择文件菜单中的退出命令,或者直接按”ALT+Q “5、Visual basic 的主菜单主要包括文件、编辑、视图、工程、格式、调试、运行、查询、图表、外接程序、窗口和帮助等菜单项。
6、Visual basic开发环境的中心部分称为窗体。
7、Visual basic提供的工程资源管理窗口以树形图的方式对其资源进行管理。
8、属性窗口有两种显示方式,一种是按字母排序,另一种是按分类排序。
9、激活属性窗口的方法是按快捷键F4。
10、visual basic有两种运行程序的方法:解释模式和编译模式。
11、打开属性窗口的三种方法是:在视图菜单中选择属性窗口选项;在标准工具栏中单击属性窗口按钮;在相应的对象上单击鼠标右键,然后从快捷键菜单中选择属性窗口选项。
12、设置对象属性的基本步骤是:打开属性窗口;在属性列表中选择属性名;在右侧选择合适的值或者输入新的属性值。
13、解释模式和编译模式在程序运行过程中的区别是什么?在解释模式下,系统逐行进行读取、翻译、执行机器代码。
解释模式在设计时可以方便的进行程序,不必编译保存,但其运行速度慢。
在编译模式下,系统一次性的读取代码,全部翻译完成后,在执行代码,翻译模式在不修改程序的前提下,运行速度较快,一旦程序有所改动,则需要重新编译。
例如我们的vb中,在调试过程中,我们使用的是解释模式,如果生成可执行文件后再运行的话,那就是编译模式,这样如果发生错误的话,我们的程序需要更改,然后再运行。
目录VBA常用技巧错误!未定义书签。
第8章控件与用户窗体4技巧1限制文本框的输入4技巧2文本框添加右键快捷菜单6技巧3文本框回车自动输入10技巧4自动选择文本框容11技巧5设置文本框数据格式12技巧6限制文本框的输入长度14技巧7将光标返回文本框中15技巧8文本框的自动换行17技巧9多个文本框数据相加19技巧10控件跟随活动单元格20技巧11高亮显示按钮21技巧12组合框和列表框添加列表项的方法2312-1使用RowSource属性添加列表项2312-2使用List属性添加列表项2412-3使用AddItem方法添加列表项25技巧13去除列表框数据源的重复值和空格27技巧14移动列表框条目29技巧15允许多项选择的列表框32技巧16多列组合框和列表框的设置3516-1多列组合框和列表框添加列表项3516-2多列列表框写入工作表37技巧17输入时逐步提示信息39技巧18二级组合框46技巧19使用DTP控件输入日期48技巧20使用RefEdit控件选择区域50技巧21如何注册控件52技巧22遍历控件的方法5522-1使用名称中的变量遍历控件5522-2使用对象类型遍历控件5722-3使用程序标识符遍历控件5822-4使用名称中的变量遍历图形5922-5使用FormControlType属性遍历图形60 技巧23使微调框最小变动量小于161技巧24不打印工作表中的控件6324-1设置控件格式6324-2设置控件的printobjcet属性65技巧25在框架中使用滚动条65技巧26使用多页控件67技巧27标签文字垂直居中对齐69技巧28使用TabStrip控件71技巧29显示GIF动画图片73技巧30播放Flash文件76技巧31在工作表中添加窗体控件7831-1使用AddFormControl方法7931-2使用Add方法81技巧32在工作表中添加ActiveX控件83 32-1使用Add方法8432-2使用AddOLEObject方法86技巧33使用spreadsheet控件87技巧34使用Listview控件9034-1使用Listview控件显示数据列表9034-2在Listview控件中使用复选框9334-3调整Listview控件的行距9534-4在Listview控件中排序9834-5Listview控件的图标设置99技巧35调用非模式窗体102技巧36进度条的制作10436-1使用进度条控件10436-2使用标签控件106技巧37使用TreeView控件显示层次109技巧38用户窗体添加图标113技巧39用户窗体添加最大最小化按纽114技巧40禁用窗体标题栏的关闭按钮116技巧41屏蔽窗体标题栏的关闭按钮117技巧42无标题栏和边框的窗体119技巧43制作年月选择窗体120技巧44自定义窗体中的鼠标指针类型122技巧45调整窗体的显示位置124技巧46由鼠标确定窗体显示位置125技巧47用户窗体的打印127技巧48使用自定义颜色设置窗体颜色129技巧49在窗体中显示图表12949-1使用Export方法13049-2使用API函数131技巧50窗体运行时调整控件大小133技巧51在用户窗体上添加菜单135技巧52在用户窗体上添加工具栏139技巧53使用代码添加窗体及控件144技巧54用户窗体的全屏显示15054-1设置用户窗体为应用程序的大小150 54-2根据屏幕分辨率进行设置151技巧55在用户窗体上添加状态栏151第8章控件与用户窗体技巧1 限制文本框的输入用户在使用文本框输入数据时,往往希望能限制输入数据的类型,比如只能输入数字。
(第一章)第一题、单项选择题(每题1分,5道题共5分)1、Microsoft Access是一个( )软件。
A、字处理 B、绘图C、桌面型数据库 D、多媒体制作2、Microsoft Access生成的文件后缀是( )。
A、.ADP B、.DBF C、.FRM D、.MDB3、在关系型数据库中,称一个“关系”为一个( )。
A、记录 B、字段 C、数据库 D、数据表4、Access中表和数据库的关系是 A、一个数据库可以包含多个表 B、一个表只能包含两个数据库C、一个表可以包含多个数据库D、一个数据库只能包含一个表5、数据表中的“行”称为()。
A、字段 B、数据C、记录 D、数据视图第二题、多项选择题(每题2分,5道题共10分)1、Microsoft Access用途包括( )。
A、存贮数据B、组织数据C、分析数据D、数据库系统开发2、数据库中的表由哪两部分构成( )。
A、数据B、表结构 C、属性 D、数据项3、Microsoft Access的帮助系统提供的帮助形式有( )。
A、目录/搜索帮助 B、示例数据库帮助 C、上下文帮助 D、助手帮助4、关于数据表的叙述,正确的为( )。
A、数据表是数据库中的子对象B、一个数据库中每个数据表具有唯一的名字C、一个数据表是具有相同字段的所有记录的集合D、数据表的一行称为一条记录5、下列哪些对象属于Access数据库中二级容器对象( )。
A、表对象 B、查询对象 C、窗体对象 D、窗口对象第三题、判断题(每题1分,5道题共5分)1、Microsoft Access可以用于数据存贮、但不可用于系统开发。
×2、在一个关系中,各列的顺序可以任意地排列。
√3、在一个关系中,不允许有相同的字段名。
√4、在一个关系中,记录的顺序不可以任意地排列。
×5、在一个关系中,同一列数据项要具有相同的数据类型。
√(第二章)第一题、单项选择题(每题1分,5道题共5分)1、在Access 2003中,如果一个字段中要保存长度多于255个字符的文本和数字的组合数据,选择()数据类型A、文本B、数字C、备注D、字符2、在Access 2003中,若需展开所有子数据表中数据,可以利用()菜单中的【全部展开】命令。
图10-1 WinForm项目文件结构(四)Form1.cs文件Form1.cs包含了窗体部分类Form1的一部分定义,用于程序员编写事件处理代码,是程序员工作的主要对象。
Form1.cs文件主要由Form1.cs[设计]界面与Form1.cs逻辑代码两部分构成,还包含了Form1.Designer.cs和Form1.resx文件,具体如下:1. Form1.cs[设计]界面Form1.cs[设计]界面位于Form1.cs文件下,双击解决方案窗口中的Form1.cs文件,切换到Form1.cs[设计]界面,如图10-2所示。
图10-2 Form1.cs[设计]界面Form1是Form1.cs[设计]界面中系统初始化的窗体。
默认情况下,该窗体上没有任何控件,用户可以通过拖到工具箱中的控件对窗体界面进行设计。
点击“视图”下的“工具箱”,将显示出工具箱窗口,此时,可以选择相应控件拖放到Form1窗体中,如图10-3所示将button按钮拖放到窗体中。
图10-3 在窗体上添加控件2. Form1.cs逻辑代码WinForm窗体程序除了向用户展示友好的界面外,还可以与用户界面进行交互,而实现交互功能的逻辑代码也放在Form1.cs文件中。
在Form1窗体空白处右击会弹出快捷菜单,在快捷菜单中单击“查看代码”选择,就会进入Form1.cs逻辑代码,如图10-4所示。
此时,点击鼠标右键,在显示的快捷菜单中选择“查看设计器”选项,就可以切换到)Form1.cs[设计]界面。
这种设计界面和逻辑代码分开的设计模式,使得文件结构清晰,易于维护。
图10-4 Form1.cs逻辑代码3. Form1.Designer.cs文件Form1.Designer.cs文件用于在窗体类中自动生成控件的初始化代码,例如将Button按钮拖放到Form1窗体上,Form1.Designer.cs文件会自动生成如下代码,如图10-5所示。
第1章Visual Basic程序开发环境1.1 Visual Basic 6.0简介Visual Basic(简称VB)是由Microsoft公司开发的一种可视化的、面向对象、采用事件驱动方式的结构化程序设计语言,简单易学、通用性强、用途广泛。
在所有基于Windows 操作平台的程序开发工具中,其表现极为优异。
它不但具有早期Basic语言的所有功能,而且提供了一种可视化的设计工具,可以直接使用窗体和控件设计程序的界面,极大地提高了程序设计效率。
Microsoft公司于1991年推出了第一个“可视”的编程软件——Visual Basic 1.0,随后不断更新、升级。
目前应用最为广泛的Visual Basic 6.0版是1998年推出的,该版本在VB 5.0的基础上,针对Internet应用和远程数据访问等方面进行了较大改进,增加了一些新控件并增强了已有功能。
此外,Visual Basic 6.0还提出了用组件编程的概念,大大扩展了面向对象编程的范畴。
目前,Visual Basic已经成为一种真正专业化的开发语言,用户不仅可以用它快速创建Windows应用程序,还可以编写企业级的客户/服务器程序和强大的数据库应用程序。
1.1.1 Visual Basic的特点Visual的本义是“视觉的,可视的”,在此引申为可视化、图形化的应用程序开发方法;而Visual Basic就是可视化的编程语言。
这种编程语言最显著的一个特点,便是用户无须编写大量代码去描述界面元素的外观和位置,而只要把预先建立的对象拖放到窗口的适当位置上即可。
作为Windows平台下最优秀的程序开发工具之一,Visual Basic功能强大、应用广泛,从开发个人或小组使用的小工具,到大型企业应用系统,甚至通过Internet遍及全球的分布式应用软件,都可以使用Visual Basic语言进行开发。
总的来看,Visual Basic具有以下几个主要特点。
第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创建的对话框过于简单,无法满足使用需要,那么就需要创建真正的用户窗体了。