Excel VBA编程 窗体与过程的关系
- 格式:doc
- 大小:11.38 KB
- 文档页数:1
窗口(Window 对象)基本操作应用示例Window 对象代表一个窗口,约有48个属性和14个方法,能对窗口特性进行设置和操作。
Window 对象是Windows 集合中的成员,对于Application 对象来说,Windows 集合包含该应用程序中的所有窗口;对于Workbook 对象来说,Windows 集合只包含指定工作簿中的窗口。
下面介绍一些示例,以演示和说明Window 对象及其属性和方法的运用。
示例 02-01:激活窗口(Activate 方法)Sub SelectWindow()Dim iWin As Long i As Long bWinMsgBox "依次切换已打开的窗口"iWin = Windows.CountMsgBox “您已打开的窗口数量为:” & iWinFor i = 1 To iWinWindows(i).ActivatebWin = MsgBox("您激活了第" & i & "个窗口,还要继续吗?" vbYesNo)If bWin = vbNo Then Exit SubNext iEnd Sub示例02-02:窗口状态(WindowState属性)[示例02-02-01]Sub WindowStateTest()MsgBox "当前活动工作簿窗口将最小化"Windows(1).WindowState = xlMinimizedMsgBox "当前活动工作簿窗口将恢复正常"Windows(1).WindowState = xlNormalMsgBox "当前活动工作簿窗口将最大化"Windows(1).WindowState = xlMaximizedEnd Sub示例说明:使用WindowState属性可以返回或者设置窗口的状态。
Excel_VBA编程__窗体的事件Excel VBA编程窗体的事件事件是指在应用程序运行期间,在窗体(或其内的对象)上,由于用户的操作或系统内自身原因而产生的有效动作,例如单击鼠标(Click)、移动鼠标(MouseMove)等都是事件。
VBE中的对象可识别的事件是预先确定的,并不是所有对象都会具有相同事件。
但每个事件都有一个事件过程的框架与之对应,当某一事件发生时,系统将立即执行对应的事件过程,因此,如果想利用这个过程去完成指定的任务,那么用户就必须在这个对应的事件过程中编写程序代码,以便响应发生的事件,否则,即使发生了可识别的事件,系统也不会做任何操作。
下面介绍用户窗体中的一些常用事件。
1.Initialize事件Initialize事件用来提供应用程序或用户窗体中的控件、变量等进行初始化。
该事件的作用,于类模块中的该事件相同。
2.QueryClose事件该事件发生在UserForm关闭之前。
通常用这个事件确保在关闭应用程序之前,应用程序包含的用户窗体中没有未完成的任务。
该事件的语法格式如下:格式:Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)该事件括号内有两个参数。
其中,参数Cancel是一个整数的值,用于指定是否在所有加载的用户窗体中停止QueryClose事件,当Cancel的值设置为0以外的任意值时,QueryClose 事件将停止执行,并防止关闭UserForm与应用程序;参数CloseMode为一个值或常数,用来指示引起QueryClose事件的原因。
CloseMode参数返回下列的值,如表12-4所示。
表12.4 CloseMode参数的返回值“常数”是执行程序时保持常数值的命名项目。
常数可以是字符串、数值、另一常数、提示3.Termina te 事件该事件用于删除窗体中对象事例的所有引用。
Excel VBA编程用户窗体的相关概念
由于VBA是继承于Visual Basic应用程序的,并成功的继承了VB的事件驱动模型。
该模型中包含可编程的元素,这些元素可被初始化并在窗体上显示。
当用户与这些元素进行交互时,又导致引发调用事件处理程序的事件。
这在设计上极大拓宽了可以组合的用户界面的丰富程度,并且降低了需要支持它的代码的复杂性。
用户窗体在其打开到关闭的这个过程中,可以称为窗体的生命周期。
在这个过程中,窗体自动、主动或被动的触发了一些事件。
下面就来介绍在窗体的生命周期内要经历的步骤。
1.窗体的生命周期
窗体从加载并分配内存空间,到处理数据,然后关闭窗体结束释放内存的过程,就叫做窗体的生命周期。
一个周期一般经历如下4个步骤:
●初始化
当用户单击运行窗体命令时,窗体初始化并发生第一个事件。
系统会自动执行创建和设置一个例示所需要的所有初始化步骤。
●装载
窗体装载在初始化之后,用于装载窗体和窗体中的控件对象的实例。
●激活事件并处理
当窗体被显示出来之后,用户执行某些操作后,将激活相应的事件,并处理这些事件。
●窗体卸载
当用户完成所有的操作后,执行关闭窗体命令,这时将激活卸载事件,完成最后的资源清理工作,比如:删除实例,释放内存,卸载对象。
2.模式和无模式
用户窗体在显示时有两种模式:模式和无模式。
以模式方式显示的用户窗体与打开对话框相同,当前程序中只能针对用户窗体进行操作,只有在关闭用户窗体(对话框)后,才可以操作其他窗体。
以无模式方法打开的窗体之间可以互相切换。
Excel基础知识,VBA编程必学内容之控件系统,窗体控件userformVBA是Excel表格的一项拓展功能.事实上,使用Excel表格本身的一些公式函数已经完全可以满足日常工作的需要了,只是VBA可以这一事情更加完美罢了,编程语言不只VBA,还有phython等,但它们都有一个共同的特点,基于即Excel表格的二次开发.在这里,咱们只说VBA.前面的图文咱们说过,所谓VBA其实就是VB高级编程语言的面向对象的编程.在这里又引出一个概念'对象'.何谓对象?在Excel里,工作表,工作簿,单元格及区域,一个shapes形状,一条线,一种字体,一种颜色等等,似乎只要能用名词来表达的都可以叫做对象.窗体,Userform,也是一种对象,只是其中之一.这篇短文,咱们就说一说窗体的作用.1.窗体的作用.窗体,像是一块画布,在这里,我们可以如画画一般,把各类控件画上去,标签,文本框,命令按钮,checkbox,optionbutton等,在工具箱里我们点选其中任意一个控件之后,回到窗体点击窗体,拖拽一段距离,然后松开鼠标,这时便可以勾画出刚才所点选的控件.窗体,其实就是控件的容器.我们根据自己的实际的设计需要随心所欲设计窗体,但这时我们所设计出来的窗体是没有功能的.窗体与其中的控件一起构成了通向数据管理的界面,但具体的功能还要靠代码来实现,窗体界面只是数据管理的窗口,而代码才是灵魂.2,窗体的常用代码,事件与属性(1),窗体的常用代码:userform1.show,调出窗体1;userform1.hiden,隐藏窗体1;unloaduserform1.卸载窗体1.(2).窗体常用的事件:userform的初始化事件,即窗体加载时,凡是被写入userform_initialize的代码均会被执行.(3).窗体修改的属性:窗体本身的名称,userform1,常被根据实际需要而被修改成设计者所希望的名称;caption属性,窗体初始时顶端所显示的文字;showmodal,当值为true时,窗体加载时,无法选择工作表与单元格对象,仅能操作窗体与其中的对象;当值为false时,可以自由操作其余任何的对象与内容;font,修改窗体顶端的文字的字体字形等属性.如果我们要设计数据录入系统的录入查询界面,那窗体一定是少不了的.对VBA感兴趣的朋友不妨多了解一下.。
ExcelVBA编程新建⽤户窗体
Excel VBA编程新建⽤户窗体
在Excel⼯作表中,当InputBox和MsgBox函数在不能满⾜⽤户应⽤程序的要求时,⽤户可以创建⾃定义⽤户窗体,来满⾜获取更多数据信息的要求。
⽤户不仅能够在⽤户窗体内添加所需的各种控件,⽽且还可为各控件设置相关属性及合理地安排他们的布局。
同时,根据需要为窗体及其中的控件编写特定事件的程序代码,从⽽创建出各种复杂、实⽤的⽤户界⾯。
在当前⼯作表中,选择【开发⼯具】选项卡,单击【代码】组中的Visual Basic按钮,打开VBE环境窗⼝。
然后在该窗⼝中,执⾏【插⼊】|【⽤户窗体】命令,这样就创建了⼀个新的⽤户窗体(UserForm1),如图12-1所⽰。
图12-1 新建⽤户窗体(UserForm)
新创建的⽤户窗体中没有任何控件,在⽤户窗体的标题栏中显⽰了当前⽤户窗体的标题(Caption),和⼀个【关闭】按钮。
⽽窗体中则为⼀个个灰⾊的点组成的⽹格,每个(上、下、左、右)⽹格的⾼度和宽度的间距为6磅,⽹格的的间距可以修改。
⽹格的是⽤于帮助⽤户放置控件的设计⼯具,当窗体在运⾏状态时则不显⽰⽹格。
创建⽤户窗体时,还默认打开了【控件⼯具箱】,该⼯具箱中包含了VBE中所有的可⽤控件,可⽤于向⽤户窗体中添加控件。
提⽰⽤户还可以在VBE环境窗⼝的【⼯程资源管理器】窗⼝中右击,在弹出的快捷菜单中,执⾏【插⼊】|【⽤户窗体】命令,来创建⽤户窗体。
执⾏
控件⼯具箱。
EXCELVBA窗体化编程方法/步骤1:1,打开微软excel2007,点击红圈打开••方法/步骤2:2、将宏全性设置为“启用所有宏”。
方法/步骤3:3、点击红圈,打开VBA编程界面••方法/步骤4:4、插入—>用户窗体,出现如下界面方法/步骤5:5、按图中caption 的Userform1 修改为“日记账登账界面”方法/步骤6:6、鼠标双击窗体红圈位置••方法/步骤7:7、按图中1步在框是选择Initialize ,出现第2这个过程代码方法/步骤8:8、在工程代码中输入下面的代码Private Sub UserForm_Initialize()Application.WindowState = xlMaximizedActiveWindow.WindowState = xlMaximizedUserForm1.Height = Application.HeightUserForm1.Width = Application.WidthMe.Left = 0Me.Top = 0End Sub下图红圈中的代码方法/步骤9:9、双击userform1,如图红圈,返回窗体方法/步骤10:10、在窗体界面下,点击工具箱中的标签(如图红圈),再在窗体上生成“标签”如图蓝色圈位置••方法/步骤11:11、点击窗体中的“label1”,再在左边属性窗口中的caption的值“label1”修改为“日期:”,如此类推,生成“摘要:”、“收/付:”、“金额”,效果图如下方法/步骤12:12、再按照添加“标签”的方法,添加4个文本框和1个“按钮”键,效果如下图:方法/步骤13:13、按图顺序,1、点击按键;2、在左边属性框输入“确定”方法/步骤14:14、点击窗体中的“按键”,出现过程代码,如图方法/步骤15:15、要过程中输入如下代码:Dim k As IntegerWith ThisWorkbook.Sheets("sheet1")If .Cells(1, 1) = "" Then.Cells(1, 1) = "日期".Cells(1, 2) = "摘要".Cells(1, 3) = "借方".Cells(1, 4) = "贷方".Cells(1, 5) = "余额"End IfEnd Withk = ThisWorkbook.Sheets("sheet1").End(xlUp).RowWith ThisWorkbook.Sheets("sheet1").Cells(k + 1, 1) = CDate(Me.TextBox1.Value).Cells(k + 1, 2) = Me.TextBox2.ValueIf Me.TextBox3.Value = "收" Then.Cells(k + 1, 3) = Val(Me.TextBox4.Value)Else.Cells(k + 1, 4) = Val(Me.TextBox4.Value)End IfIf k = 1 Then.Cells(k + 1, 5) = Val(.Cells(k + 1, 3)) - Val(.Cells(k + 1, 4))Else.Cells(k + 1, 5) = Val(.Cells(k + 1, 3)) - Val(.Cells(k + 1, 4)) + Val(.Cells(k, 5))End IfEnd WithMsgBox "本笔已录入"不容质疑我的代码是否正确,绝对运行正常(我编程14年以上,熟练)效果如下:方法/步骤16:16、保存文件,文件后缀为选择.xlsm格式,关闭文件再点击打开这文件,看效果如何?日记账程序可以运行了,你可以输入数据了。
ExcelVBA用户窗体编程基础概述当使用MsgBox函数和InputBox函数不能满足与用户交互的需求时,您能使用用户窗体来自定义对话框。
您能使用用户窗体来显示所输入的数据,您甚至能使用用户窗体创建一个完整的用户界面,而不会让用户接触到电子表格本身。
您在Windows对话框中所看到的大多数控件都能在用户窗体中实现——命令按钮,选项按钮,复选框,文本框,组合框——加上一些其它不常用的控件像图像,日历,等等。
本文介绍了用户窗体的基本概念,并介绍了使用用户窗体的常用技术。
其中,也讲解了一些最通用的思路。
在文章中列举了一个包含所有过程的完整的示例文件,以及实现这些过程的代码,让您能在实践中看到所有工作的基本原理和方法。
本文包含以下内容:● 基本的用户窗体操作● 用户窗体和控件的属性● 一个用户窗体的生命周期● 用户窗体和控件的事件● 问题1:如何在用户窗体间传递数据?● 问题2:如何找到我的窗体中的某类控件?● 问题3:如何获取数据到列表框中?● 问题4:如何为循环创建进度条?● 一个完整的用户窗体综合示例基本的用户窗体操作•创建一个窗体。
打开VBE编辑器(选择菜单“工具——宏——Visual Basic编辑器”或按Alt+F11组合键),选择菜单“插入——用户窗体”,或者在工程窗口中单击右键,从弹出的快捷菜单中选择“插入——用户窗体”,即可创建一个窗体。
•添加控件。
当你创建了一个窗体后,将会显示一个名为“控件工具箱”的浮动工具箱(如果没有该工具箱的话,您可以从视图菜单中找到它),其中显示了最普遍的控件类型。
单击您想要的控件,拖动它到您的用户窗体中。
•更多的控件。
有一些更多的可用的控件,您可以在控件工具箱中单击右键,从中选择“附加控件”,您能添加日历、电子表格、图形,等等。
•添加事件程序。
事件允许当用户对窗体和控件进行操作时作出相应的反应,事件程序要放置在用户窗体模块中,您能通过双击窗体或控件来打开代码模块窗口,或者在窗体或控件中单击右键,从快捷菜单中选择“查看代码”来打开代码模块窗口,或者在工程窗口中的用户窗体图标上单击右键后选择“查看代码”来打开代码模块窗口。
中文部分如何更改用户窗体在Excel 2003,Excel 2002 和Excel 2000 中的使用vba 的应用程序(VBA)查看本文应用于的产品本页概要简介更多信息用户窗体基础知识如何显示用户窗体如何暂时隐藏用户窗体若要从内存中删除用户窗体的方法如何使用用户窗体事件如何捕获用户窗体事件如何防止用户窗体被关闭,通过使用关闭按钮VBA 代码如何使用设计模式中编辑控件如何在用户窗体上的控件,请参阅标签控件如何使用WITH 语句设置Label 控件的格式文本框控件如何使用验证密码TextBox 控件命令按钮控件列表框控件如何获取当前选定的项从列表框控件如何获取多个选择列表框控件中的选定的项如何使用来填充列表框控件与单元格在工作表上的行来源属性如何填充数组中的值与列表框控件如何使用工作表上的水平单元格区域来填充列表框控件如何从列表框控件所绑定到的数据的多个列中返回多个值如何从列表框控件所绑定到工作表中删除所有项目如何删除未绑定到工作表的列表框控件的所有项目组合框控件如何将新项添加到列表中,如果组合框控件没有绑定到工作表如何将新项添加到列表中,如果组合框控件所绑定到工作表如何显示一个组合框控件的列表,用户窗体出现时如何在另一个组合框控件中进行选择时显示的一个组合框控件列表框架控件如何循环访问一框架控件上的所有控件选项按钮控件如何确定选项按钮控件是在一框架控件上时选择了该选项按钮控件如何确定已选中该选项按钮控件复选框控件如何检查复选框控件的值切换按钮控件如何获取切换按钮控件的值如何创建一组互斥的切换按钮控件TabStrip 控件如何以编程方式控制TabStrip 控件多页控件如何以编程方式控制多页控件如何通过使用多页控件中创建一个向导界面滚动条控件如何更改基于滚动条控件的值的Label 控件数值调节钮控件如何添加一个递增的数值调节钮控件或递减TextBox 控件中存储的日期RefEdit 控件如何填充基于您使用RefEdit 控件来选择该区域的单元格区域图像控件如何加载图像控件中的图片其他信息对象浏览器展开全部| 关闭全部概要这篇文章介绍了如何更改用户窗体以编程方式在Excel 中。
VBA代码窗口、模块的简单讲解及ThisWorkbook工作簿代码应用讲了很长时间的VBA,今日和大家讲解一下VBA代码的简单知识。
一代码窗口VBA的代码窗口包括工作表事件代码窗口、ThisWorkbook事件代码窗口、窗体代码窗口、标准模块代码窗口和类模块代码窗口。
打开某个对象的代码窗口的方法是在该对象上单击右键,从中选择【查看代码】。
或者双击进入。
例如:要进入ThisWorkbook的代码窗口,在左方的工程资源管理器中右击ThisWorkbook,在弹出的快捷菜单中选择【查看代码】,右边的代码窗口将切换到ThisWorkbook的代码窗口。
注意点:在VBA中,过程包括子过程(Sub开头)、函数过程(Function开头)和属性过程(Property开头)。
每一段完整的程序都是一个独立的过程,每录制一次宏将产生一个过程。
一个模块中可以存放多个过程,但同一个过程的代码不能放在多个代码窗口中,因为过程中的代码必须是连续的。
然而VBA允许不同模块中的过程相互调用,即A过程可以执行B过程的功能。
二工作簿代码事件ThisWorkbook对象代表代码所在的工作簿,ThisWorkbook代码窗口也称为工作簿事件代码窗口。
VBA中的事件是指对象在满足指定的条件时需要做出的反应,其中工作簿事件代码是指工作簿在满足代码所指定的条件时自动执行的代码。
如果工作簿事件代码存放在ThisWorkbook以外的窗口,则将失去其自动性,代码同时也失去了存在的价值。
所以对于一切工作簿事件相关的代码,都必须保存在ThisWorkbook代码窗口中。
例如工作簿的Workbook_open事件代码的存放方式,它的功能是打开工作簿时提示'陆漫漫修远VBA'。
由于采用了事件,所以不需要手动执行代码,一切自动执行。
如果代码保存在其他地方将会失效。
注意点:事件过程有别于标准子过程,它的命名有相当严格的规定,过程的名字和参数差一个字母或者空格都将失去预设的功能,而标准子过程的名字或者参数可以随意定义。
VBA编程中打开、关闭窗体在一个程序中往往包含多个窗体,窗体在程序中用代码互相关联,形成了一个有机的整体;可见,窗体操作在VBA中是很重要的。
窗体操作有两个重要的命令:DoCmd.openform(打开窗体)和DoCmd.Close(关闭窗体)。
用于关闭窗体的Docmd的Close方法有两个必选参数和一个可选参数。
可选参数指定要将其关闭的对象的类型。
如果要关闭一个窗体,则使用acForm(是Access的内置常量,使Close 方法知道关闭的是一个窗体)。
另一个参数指定窗体的名称,即在属性表中“名称”属性的值。
可选参数告诉Access是否要保存在窗体上的更改,默认设置为提示是否保存。
使用acSaveYes 或acSaveNo来确定关闭窗体时是否要保存。
Close方法的语法为:Docmd.Close acForm。
“窗体名”,acSaveNo许多DoCmd方法可直接用于单个对象。
例如,GotoControl方法可将焦点指定给窗体上的一个控件,也可使用SetFocus方法达到同样的效果,即选中一个控件。
需要在应用程序中移动焦点以便输入新信息或修改错误信息时,使用这两个方法都很方便。
[例6.113新建一个窗体,放置一个名为“指定窗体”的标签、一个文本框“txt窗体”,再放置两个命令按钮,分别是‘'corn打开”、“corn关闭”,并在窗体模块中编写以下代码:Option Compare DatabasePublic forName As String ’声明窗体名称变量,可在模块任何位置引用Public Sub打开窗体(stDocName As String) ’打开窗体过程On Error GoTo Err一打开窗体 -Dim stI.inkCriteria As StringDoCmd.openform stDocName,,,stLinkCriteria’打开指定窗体并获得焦点Exit一打开窗体:Exit SubErr打开窗体:MsgBox Err.DescriptionResume Exit打开窗体End SubPublic Sub关闭窗体(stDocName As String) ’关闭窗体过程【。
Excel VBA编程窗体与过程的关系
在Excel中,窗体主要用于组织和显示数据,由于窗体也是一个容器对象,可用于放置其他的控件或对象,并与这些控件或对象共同构成了数据显示和输入的界面。
Excel中的过程可分为Sub(过程)和Function(函数)。
过程被定义为VBA中代码的一个单元,其中包括了一系列用于执行某个任务或是进行某种计算的语句。
并使用唯一的名字加以区分。
过程和变量一样,也有一定的作用域。
该作用域决定了过程对于程序的其他部分或者对象的访问能力。
这些过程可以被用于窗体、模块或者类模块中。
如果窗体中的过程定义为Public,他们就可以在其他窗体和模块中使用。
这时的过程已经不再是某个窗体的私有过程,它可以在程序的任何地方进行调用。
如果过程定义为Private,则这些过程只能在他们所属的模块中使用而不能使用于其他的中,这是默认的过程使用范围。
工作表窗体中的控件可指定于某个设计好的过程,并通过单击这个控件运行该过程的代码,完成指定的功能。
所以说窗体和过程是互补的,为窗体中的控件指定实现该功能的过程,从而使该控件更具有实际的意义,可以更加有效的组织数据。