宏学习入门手册.docx
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 学习 入门 手册
- 资源描述:
-
1、为什么要学习VBA? 2、VBA与宏—————————————————— 3、VBE简介—————————————————— 4、对象、属性、方法、事件 ——————————— 5、VBA过程—————————————————— 6、数据类型、变量、数组、常量 ————————— 7、该定义变量为什么种数据类型 —————— 8、程序流程控制:if语句—————————————— 9、程序流程控制:For—next语句———————— 10、程序流程控制:For—Each语句———————— 11、用户窗体: 1、什么是VBA,为什么要学习VBA? VBA是Visual Basic For Application的简称,具体说来, VBA是建立在Office中的一种应用程序开发工具。 Excel自身的内置函数其实已经很强大了,甚至有人说,只要学会二三十个函数,就已经可以满足普通用户平常的工作需求。 那我们为什么要学VBA? 是的,假如只需要满足一些普通的工作需求也许永远也不会用到VBA,但在实际应用的过程中,人们的操作却越来越大,需要也越来越高,这时候就需要用VBA来对Excel进行二次开发了,VBA可以有效地自定义和扩展Excel的功能。 但有一点想要告诉大家,VBA功能很强大,但并不是万能的,也并不是所有工作都需要用VBA来解决,也并不是所有工作用VBA来解决都会很简朴,这要根据实际情况而定,有些工作你用VBA来解决的话相反会变得很麻烦。 2、VBA与宏 刚开始的内容听起来很枯燥,请大家不要分心,耐着性子看下去,爱好总是慢慢积累的。 <1>、亲自动手,录制一段属于自己的宏 提到VBA,相信很多人想到的就是宏,但是VBA与宏是不是一回事?我觉得它们不是一回事,但这不重要,我们要做的是先来结识一下宏。 宏是什么? 我理解的宏是一系列固定动作的集合,这个集合当碰到让他执行的条件后就逐个执行。 有人把我们录制的宏比方成一个武术运动员在比赛中练就的一段武术套路动作,这个套路碰到一定的条件(比赛)就执行。 好了,别闲着,动一动你可爱的右手,点点鼠标,打开一个Excel文献,录制一段宏来来研究研究,环节如下: (1)选中任意一个单元格; (2)打开菜单—>工具—>宏—>录制新宏,调出宏录制对话框,输入宏名(mysub),拟定; (3)设立单元格字体为仿宋体,红色; (4)点击停止录宏。 这样,一个简朴的设立单元格格式的宏就录好了。 < 2>、鼠标点一点,宏给单元格换新装 下面我们来执行这段宏。 (1)选中需要设立的任意单元格或单元格区域(为了看出效果,单元格最佳有字符); (2)打开菜单—>工具—>宏—>宏,显示“宏”对话框(快捷键:Alt+F8); (3)选择我们刚才录制的宏,单击“执行”。 这样我们看到已经为刚才选中的单元格的字体已被修改成仿宋体,红色。自己动手试着录制几段宏,再执行一下,加深印象。 神奇了吧?以后当你再需要一遍又一遍地反复若干相同的操作的时候,会不会想到让宏来替你做这一切?这是一个不错的奴隶,不用花钱,且不用开工资,赚了吧? 好了,收起你贪婪的笑容,继续往下看。 宏是什么?现在相信你能想出一千种说法,由你了,俺可没你聪明,也不再多说。 上面说的执行宏的过程是不是让你感觉很麻烦?希望用快捷键来控制宏?这个我们可以在录制宏之前在录制宏对话框里进行设立。也可以在录制宏后进行设立,按Alt+F8显示宏对话框,单击“选项”,在“宏选项”对话框里进行设立工作表里有宏。 <3>、寻根问底,找到宏的老窝 假如你忘掉了,请你再打开宏录制对话框,在宏名的下面,有一个“保存在”的选项,点一点下拉的箭头,我们可以看到,宏可以保存在三种不同的位置,分别是: (1)当前工作簿(系统默认):宏保存在当前工作薄的模块里,只有当该工作薄打开时,宏才起作用。 (2)新工作簿:新建一个工作薄保存。 (3)个人宏工作簿:这是为宏而设计的一种特殊的具有自动隐藏特性的工作簿,假如你要让某个宏在多个工作簿都能使用,那么就应当创建个人宏工作簿,并将宏保存于其中。 上面我们录制的宏是保存在当前工作薄里,今天我们在这里也只介绍保存在当前工作表里有宏。 <4>、拨开层层迷雾,查看庐山真面目 宏靠什么来控制Excel的运营?是不是感觉深在浓浓的迷雾里,感觉一头雾水?让我们鼓一鼓劲,拨开它的衣服,开开那家伙里面到底是什么? (1)按Alt+F8快捷键打开“宏”对话框; (2)选择我们刚才录制的宏,点“编辑”按钮。 眼前一亮吧?这是一个新的天地——VBA的编辑器窗口(VBE),这个我们以后再说,先将注意力集中到显示的代码上。代码如下: 复制内容到剪贴板 代码: Sub mysub() With Selection.Font .Name = "仿宋_GB2312" .Size = 12 .Strikethrough = False .Superscript = False .Subscript = False .OutlineFont = False .Shadow = False .Underline = xlUnderlineStyleNone .ColorIndex = xlAutomatic End With Selection.Font.ColorIndex = 3 End Sub 现在你也许感觉到上面这些乱七八糟的代码会很陌生,甚至在问自己是不是来到外星人的世界,反正偶当初是这样感觉的,但不要为此感到胆怯,将来我们会慢慢熟悉他,就像闭上眼睛也能准确地将那个又大又红的苹果送到自己的嘴里。 <5>、再进一步,给宏安上门铃 一遍一遍地在宏对话框里选择宏名称,按“执行”按钮来运营宏的麻烦是不是让你郁闷得有些想吐血?指定快捷键虽然方便,但别人用自己的工作表时能不能快速上手?就算是自己,假如宏多了,或是放的时间长了,你还记得哪个快捷键控制哪个宏? 作为excel开发者,一个重要的目的是为自动化提供一个易于操作的界面,“按钮”是最常见的界面组成元素之一,我们可以把宏指定给特定的按钮,通过按钮来执行宏,还是用刚才我们录制的那个宏来举例。通过使用“窗体”工具栏,可认为工作簿中的工作表添加按钮。在创建完一个按钮后,可认为它指定宏,然后你的用户就可以通过单击按钮来执行宏。在本练习中,将创建一个按钮,并为它指定一个宏,然后用该按钮来执行宏。具体环节如下: (1)打开菜单—>视图—>工具栏—>窗体,调出窗体工具栏。 (2)单击”窗体“工具栏中的“按钮”控件,在工作表中希望放置按钮的位置按下鼠标左键,拖动鼠标画出一个按钮,松开鼠标后,Excel会自动显示“指定宏”对话框。 (3)从“指定宏”对话框中选择“mysub”,单击“拟定”。这样,就把该宏指定给命令按钮。 < 6>、小结 到这里,我们对宏应当有一个简朴的了解了吧?宏事实上就是一个简朴的VBA的Sub过程,它保存在模块里,以Sub开头,以End Sub结尾,执行时就从第一句逐句执行,直到End Sub结束。我们今天录的这段宏也总是先设字体,再改字体颜色,这种顺序永远不会乱。 说完这些,你是不是感觉这些操作古板得没有气愤?是不是感觉这宏的操作不能满足自己的需求? 宏代码绝不等于VBA,它只是VBA里最简朴的运用,尽管许多Excel过程都可以用录制宏来完毕,但是通过宏代码还是无法完毕许多的工作,如: (1)不可以建立公式,函数; (2)没有判断或循环的功能; (3)不能进行人机交互; (4)无法显示用户窗体; (5)无法与其他软件或文献进行互动。 ……. 所以,你看了上面的内容后千万不要认为宏就是VBA了,更不要认为自己已经会VBA了,事实上是你才刚沾上VBA的边,或者说连边都没沾上,甚至连宏今天我们都只是作了简朴的介绍。 3、什么是VBE? 相信你还没忘掉吧?VBE就是VBA的编辑窗口,所有的VBA操作都在VBE里完毕。 VBE是一个分离出来的应用程序,它可以与Excel无缝结合,但是需要说明的是要运营VBE必须先运营Excel,VBA模块与Excel工作薄文献一起存储,除非激活VBE,否则VBA模块是看不见的。 1、运营Excel后,如何切换换到VBE窗口? 打开大门的钥匙有很多把,千万别猴急地去爬下水管道。 (1)按ALT+F11快捷键; (2)选择“工具”—>“宏” —>“Visual Basic编辑器”命令。 (3)右击工作表名称标签,点击查看代码. 2、初识VBE窗口 这个界面相信你不陌生吧?查看宏的时候我们已经见识过它了。 “工程资源管理器”显示一个树型图示,包含了当前在Excel中打开的所有Excel对象,包含工作表,模块,窗体,加载宏及隐藏的工作薄,每个工作薄被认为是一个工程。 在工程资源管理器里右击,可以在右键菜单里选择相应的命令插入模块或窗体。假如你想删除它或者保存它,同样也可以在这里进行相应的操作。 “属性窗口”显示当前你选择的Excel对象的属性。选中某个对象后,可以在属性窗口中修改选中的对象的的各样属性.如颜色,名称等。 “立即窗口”,这是一个非常有用的窗口,在其中可以直接执行VBA语句,测试语句和调试代码,就跟我们在DOS下输入DOS命令同样。假如你的立即窗口不可见,按 CRTL+G调出来,可以在里面尝试输入: [A1]=”我在学习VBA” 回车,看一看A1单元格里发生了什么变化? 4、对象、属性、方法,事件 这是很重要的几个概念,是写VBA程序的基础,大家仔细读,一定要弄清楚。 <1>、对象及对象层次结构 对象就是存在的东西,是VBA解决的内容,涉及工作薄、工作表、工作表上的单元格区域、图表等等。对象可以互相包含,就像一个文献夹里可以包含多个文献夹同样,而这个文献夹又可以被其他的文献夹包含,一个工作薄对象可以包含多个多个工作表对象,一个工作表对象又可以包含多个单元格(或图表,图形等),这种对象的排列模式称为Excel的对象模型。 集合这个概念经常碰到,我理解的集合是对相同类型的对象的统称。 某中学有5000个学生,名字各不相同,我们对他都统称为某中学的学生,而不和一一去叫他们的名字,"某中学的学生"在这里是集合。 对象的引用,在Excel里,Workbooks集合包含在Application对象里,当我们要引用某工作薄的时候,要遵循从大到小的规则。跟表达硬盘里的某个文献的位置同样,比如我们想引用D盘“我的文档”文献夹下的名为“我的VBA课程.doc”文献时要输入的是: D:\我的文档\我的VBA课程.doc 同样,假如我们要引用名称为“mybook.xls”的工作薄时就是: Application.Workbooks(“mybook.xls”) 和引用文献不同的是,VBA里使用的分隔符是点。 同理,当我们引用“mybook.xls”里面的工作表“mysheet”时应是: Application.Workbooks(“mybook.xls”).Worksheets(“mysheet”) 可以继续延伸到下一层,引用“mybook.xls”里工作表“mysheet”里面的单元格区域“A1:D10”: Application.Workbooks(“mybook.xls”).Worksheets(“mysheet”).Range(“A1:D10”) 但是并不是每一次引用都必须这么呆板。假如我们引用的是活动对象,也就是被激活的对象,引用就可以进行简化。 假如是mybook工作薄是激活的,引用可以简化为 Worksheets(“mysheet”).Range(“A1:D10”) 假如mysheet当前也是激活的,引用甚至还可以简化为Range(“A1:D10”) ,也可以直接输入[A1:D10] ,假如引用的单元Range是单个的单元格,还可以用Cells(行号,列号)的引用方式。 2、属性 每一个对象都有属性,一个属性就是对一个对象的一个设立。 猪八戒背着媳妇高秀兰回自己的紫云洞,猪八戒的媳妇就是对象,“高秀兰”就是猪八戒的媳妇的一个属性(name属性),引用对象的属性同样也要用点来分隔。 猪八戒的媳妇.name=高秀兰 别闲着,还是动动你的右手,打开一个工作表,Alt+F11(千万别说你不知道这个快捷键是干什么,要不我保证被你气个半死),假如立即窗口没有打开,按Ctrl+G打开,在里面输入: 复制内容到剪贴板 代码: Msgbox Worksheets(1).name Worksheets(1)和Worksheets(“sheet1”)有什么区别? Worksheets(1)表达Worksheets集合里的第一个工作表。 Worksheets(“sheet1”)表达Worksheets集合里名为"sheet1"的工作表。 至于Msgbox是什么,那就自己问Help了,在立即窗口里用鼠标左键把Msgbox抹黑,按F1,就弹出Help里对它的说明了。 抹黑代码,再按F1即可看到相应的帮助。叶枫说:“这个办法很合用,一般人我不告诉他。” 一个对象有哪些属性我们可以在属性窗口里查看,要修改一个对象的某种属性,如名称、显示状态、颜色等等,也可以在属性窗口里进行修改,当然我们还可以运用代码进行修改。改当前工作薄里的第三个工作表的名称为“这个名字是我用VBA改的”,想想怎么写代码? 把你的代码输在立即窗口里,回车,看看效果,你做到了吗? 3、方法 每一个对象都有方法,方法就是在对象上执行的某个动作。 和属性相比,属性表达的是对象某种状态或样子,是静态的,就像是语文里的名词、形容词和副词,而方法则是做某件事的一个动作,就像动词,对象和方法同样用点来分隔。 4、事件 简朴点说,事件就是由用户或者系统触发的,可以在代码中响应的一段代码。比如,当我们移动鼠标,打开工作薄,激活工作表,选中单元格,改变单元格的数值,点击按钮或窗体,敲击键盘等等这些都会产生一系列的事件,通过编写代码响应这些事件,当发生此类事件时,程序代码就会进行相应的操作。 这样解释你会不会有些晕?感觉又一次进入了外星人的世界?还是举例说明,我们需要当激活某工作表的时候,自动弹出一个对话框,告诉我们激活的工作表的名称。 (1)打开一个工作表,Alt+F11打开VBE窗口,在“工程对象管理器”窗口里双击你要进行设立的工作表,使其代码窗口显示。 (2)左面选择对象Worksheet(工作表对象),右面选择Activate事件,我们可以看到在代码窗口里系统已经为我们自动输入了一段代码。 代码: Private Sub Worksheet_Activate() End Sub 5、VBA过程 一个过程就是执行某些动作的代码组合。 VBA过程分Sub过程和Function过程。 1、Sub过程总是以“sub 过程名()”开头,以“End Sub”结尾,一个过程就是执行某项动作的一套指令,Sub过程不返回运营的结果。 2、Function总是以“Function 程序名()”开头,以“End Function”结尾,和Sub过程的区别是Function过程返回程序运营的值,值可以是一个值或一个数组,就像我们的工作表函数,Function过程也就是我们说的自定义函数。 好了,今天已经讲得够多了,你对VBA应当已有一个简朴的结识了吧? 要设计一个过程,其实很简朴,把需要的对象收集起来,看看我们要对他们的属性进行如何的修改?我们需要做什么?需要用什么样的方法?要用哪些事件?收集起来就是一个完整的过程。 只要你肯动手,一定会觉得很简朴,你不要被那一大堆的对象、属性、方法和事件给吓晕了,完全不必所有记住它们,需要的时候知道在哪里找就行,而代码也不必一个一个的去输入,还记得前面一贴我们说的录制宏吗?当你需要进行某项操作的时候,不妨先录一段宏,但是宏是呆板的,有许多我们不需要的东西,给它修修枝,剪剪叶,整理整理,一个程序就OK了。 上面这个并不是真的程序,但都有了程序的思想了,程序里,事件、对象、属性及过程都有了,你能找出来吗? 多尝试,温故知新,你可以想着用程序去解决一些你在使用Excel过程中碰到的问题,每一个问题的解决,你都会发现自己得到了很大的进步. 好了,还是那句话,路在脚下,继续走,精彩会慢慢为你上演,让我们一起努力,共同进步。 在上面,我们简朴介绍了VBA的开发环境、几个常用的窗口,并对对象、对象的属性、对象的方法、对象的事件等概念作了简朴的介绍,贴子大家认真看了吗?有没有一点点的收获?学习成绩如何? 什么是对象?什么是集合?什么是属性?什么是方法?什么是事件?如何对的地表达它们? 这些,你都能回答了吗? 先沉思三秒钟,假如你不能回答,那请赶紧回过头去,再看一遍,我们说VBA是采用面向对象的程序设计方式,这些都是很重要的概念,假如不弄清楚,实际应用时,你也许会感到手忙脚乱。 这次,我们将继续单调的基本功练习,讲一些VBA里面的关键字,为程序设计打下基础,还是那句话,希望你不要嫌内容的单调,一口你永远也吞不下一个大胖子,学习是一个循序渐进的过程。 6、数据类型、变量、常量、数组 VBA的重要目的是什么?不用说了你也知道,当然是解决数据。某些数据存在于对象中,如工作表的单元格区域里,某些数据存在于我们自定义的变量中。 1、数据类型 数据类型告诉计算机如何将数据存储在内存中,如以整数、字符串、日期等。 数据类型是变量的特性,数据类型涉及: 1、数据类型 数据类型告诉计算机如何将数据存储在内存中,如以整数、字符串、日期等。 数据类型是变量的特性,数据类型涉及: 2、变量 变量是用于保存在程序运营过程中需要临时保存的值或对象。就相称于我们在操作工作表的时候插入的辅助单元格、辅助列或辅助表同样。 同工作表的单元格同样,变量可以接纳很多种的数据类型,如其名,程序运营后,变量的值是可以改变的。 7、该定义变量为什么种数据类型: 定义变量可以使用Dim语句: Dim 变量名 As 数据类型 变量名有一定的命名规则,这里我就不具体说明了,需要提醒的是在程序的设计过程中,你也许会定义很多的变量,为了阅读及修改程序的方便,你定义的变量名尽量能让人一看就明白这个变量具体代表的是什么。在Dim语句中,我们可以不必声明变量的数据类型,直接输入“Dim 变量名”此时定义的变量将被指定为Variant类型。 但我们在程序设计的过程中,一般应当明确数据的类型,这是一个好的编程习惯,由于指定数据类型后会提高程序的运营速度。 我们可以在模块中输入“Option Explict”作为第一句语句来强制声明所有变量。也可以点“工具——选项”,在选项对话框里勾选“规定声明变量”。这样,VBA在碰到没有声明的变量名称,该语句将导致程序停止。 定义变量除了可以使用Dim语句外,比较常的尚有:static语句,Private语句,Public语句。使用不同的语句定义的变量不同的是它们的作用作用域不同,具体为: (1)假如在一个过程中包含了一个Dim或Static语句,此时声明的变量作用域为此过程,即本地变量。 (2)假如在一个模块的第一个过程之前包含了Dim或Prvate语句,此时声明的变量作用域为此模块里所有的过程,也就是在此模块里所有的过程都可以使用它,即模块作用域下的变量; (3)假如在一个模块的第一个过程之前包含了Public语名,此时声明的变量作用域为所有模块,即公有变量。 变量的作用域是指变量保存其值的这段时间,也称为变量的生成周期,它决定变量可以用于哪个模块或过程中。 给变量赋值 用等号(=)是VBA里的赋值运算符。 比如我们把"我在学习VBA变量!"这个字符串赋给变量A,则直接输入: A="我在学习VBA变量!" 对了,你可以在立即窗口里试一下逐条输入: A="我在学习VBA变量!" Mgbox A 看一下效果。 注意,在VBA里文本是要用英语引号引起来的,尚有日期要用#号,比如将日期2023-7-26赋给变量A,则为: A=#2023-7-27# 3、常量 执行过程时,变量的值会发生改变,所以我们称它为“变量”,但有时候我们需要引用不会发生变化的数据,这就是常量。常量声明后,不以对它进行再赋值。 声明常量设定常量的值,需要用Const语句: Const 常量名 As 数据类型 = 常量的值 4、数组 除了变量和常量以外,数组也是我们常用到的。 什么是数组? 数组是具有相同数据类型并且共享一个名字的一组变量的集合。数组也是变量。 数组中的元素通过索引数字加以区分。 如何声明数组? 可以用Dim语句或者Public语句声明数组。 Dim/Public 数组名 (a to b) as 数据类型 a 和b 是数组中元素的个数,数组元素素最小值为a,最大值为b,元素个数为(b-a+1)个,当然,你也可以直接输入个数,此时默认最小索引号为0。 如: Dim myarr(5) As Integer 这个数组的最小元素索引号为0,元素个数为6。 上面定义的只是一维数组,你还可以定义二维、三维、四维……. 如: Dim myarr(1 to 5,1 to 10) As Integer 这就是一个二维数组,元素个数为5*10=50个。 在程序设计的过程中,定义数组的时候我们也许不能拟定数组的元素个数,对数组进行声明后,可以在运营时用ReDim语句重新指定数组的大小。 控制程序的流程,有判断、分支和循环三种语句。 接下来我们将同样同样地进行讲解。 ===================== 程序流程控制—>if语句 ===================== 1、if—then语句 这个句式相称于中文里面的“假如.......那么”。 格式: if 逻辑表达式 then 语句块 end if 解释:假如逻辑表达式的结果为true,则执行语句块里的所有语句,否则执行end if后面的语句。语句块可以是一句指令或多条指令,也可以调用一个或多个过程,当然,也可认为空,就是没有语句。 如:要判断A1单元格是否已输入内容,设计程序: 复制内容到剪贴板 代码: Sub test1() If [a1] = "" Then MsgBox "A1单元格没有输入任何内容!" End If End Sub 2、 if—then—else语句 这个语句相称于中文里面的“假如......那么......否则......”句式。 格式: if 逻辑表达式 then 语句块1 else 语句块2 end if 解释:假如逻辑表达式的结果为true,则执行语句块1里的所有语句,假如逻辑表达式的结果为Flase则执行语句块2里的所有语句。 如:要判断A1单元格是否已输入内容,设计程序: 复制内容到剪贴板 代码: Sub test2() If [a1] = "" Then MsgBox "A1单元格没有输入任何内容!" Else MsgBox "A1单元格已经输入了内容!" End If End Sub 3、if—then—elseif语句 这就相称于中文里面的若“假如…那么…否则假如…那么…否则”语句,当然,可以有多句“否则假如.......” 格式: If 逻辑表达式1 Then 语句块1 ElseIf 逻辑表达式2 Then 语句块2 ElseIf 逻辑表达式3Then 语句块3 … Else 语句块n Eed If 解释:若逻辑表达式1的结果为True,则执行语句块1,接着继续执行EndIf后面的语句;若逻辑表达式1的结果为False,则检查逻辑表达式2的结果,若为True则执行语句块2,接着继续执行EndIf后面的语句.......一直到所有结果的条件都不满足时,才执行Else后面的语句块n。 ============================= 程序流程控制——For—Next 循环语句 ============================= 什么是循环? 这里我们指的循环是指反复地执行某项动作(语句块)。 同学们在操场上跑步,两万米长跑,每圈400米。“呯”,枪一响,开始跑,一圈,两圈,三圈......直到跑满50圈才停止。这里,同学们就是在循环地在操场的跑道上执行跑步的动作。 我们来看一下For—next 的句式: For 循环变量=初值 秋终值 step 步长 循环体1 [exit for] 循环体2 next 循环变量 解释:从开始到结束,反复执行For和Next之间的指令块,除非碰到Exit For语句,将提前跳出循环。其中,步长和Exit For语句以及Next后的循环变量均可省略,步长活力的时候默认为1。Exit for 语句是强制终止循环的语句,执行它后将退出循环,执行next后面的语句。 =============================== 程序流程控制——For—Each 循环语句 =============================== 有了前面对循环一词的理解,这里我们不用再多说,假如你知道了For—next语句的工作原理,这里再来学习For—each循环以及下面我们接着要讲的句式,那就相称简朴了,同样的工作原理。 学会了吃苹果,那么离会吃梨的道路还会远吗? 呵呵,只是开个小小的玩笑,下面我们继续,一方面来看看For—Each语句的句式: For Eacn 元素变量 In 对象集合或数组名称 语句块1 [Exit For] 语句块2 next 元素变量 和上面For—next句式是同样的工作原理。 这里的“元素变量”是用来遍历集合或数中中元素的变量,它从集合或数组的第一个元素开始,直到最后一个元素,然后退出循环。 11、用户窗体 用户窗体(UserForm对象)是VBA的另一类对象。它表现出来是一个窗口或对话框,如前面我们说的MsgBox与InputBox语句弹出来的都属于窗体。使用窗体可以提供一个形象的用户界面。同我们可以在工作表(WorkSheet)上在添加不同的控件同样,在这个界面上,我们可以添加命令按钮、标签、图像、列表框等控件,用户可以通过修改控件的属性、编写不同的事件过程在程序运营过程中与程序进行交互。 1、添加窗体 假如你还没有忘掉怎么插入模块?那请用同样的方法插入一个用户窗体。 Alt+F11快捷键打开VBE编辑窗口,在工程资源管理器窗口中单击右键,选择“插入——用户窗体”命令。 Excel为用户窗体取名,同为工作表、按钮等取名同样,采用“老大,老二,老三……”的取名方式。所以新插入的用户窗体默认名称为“UserForm1”,假如再继续插入窗体,就是“UserForm2”,接着是“UserForm3”…… 当然,你可认为它重新取一个你喜欢的名字,新名字叫大花二花,或者是大狗二狗,随你了,为了方便学习,这里我们统一为其更名为“我的窗体”,方法为:在工程资源管理器中双击窗体对象,在属性窗口中重新修改“(名称)”(对象的name属性)为“我的窗体”即可。修改完毕后,可以在工程资源管理器窗口中看到相应的名称已经改变了。 这时,窗体的“名称”已经修改好了,再看看窗体,左上角还显示着“UserForm1”,这就相称于贴在一个按钮表面的标签,想要修改它,只需要修改对象的“Caption”属性即可。用改“名称”的方法,我们把这个窗体的“Caption”属性修改为“我的第一个VBA窗体”。 就像你家里贴的地板同样,新建的窗体的大小样子都同样。但是我们根据自己的需要对其进行美化或修改。如大小,背景颜色,背景图片等等,我们可以手动在属性窗口里对其进行修改,也可以程序中用代码进行修改。如修改该窗体的宽度,代码设立为: 我的窗体.Width = 500 ‘500是你需要修改后的宽度,以磅(Point)为单位 动手试一试,在属性窗口里设立“我的窗体”宽300 Point(Width属性),高200 Point(Height属性)。 2、为窗体添加界面元素 窗体就像一个舞台,舞台上得有演员才干和观众进行互动。同样,我们得为窗体这个舞台添加演员,演员可以是命令按钮、标签、文字框等等,你可以根据自己的剧本的需要安排不同的角色。 向窗体添加控件,同在工作表中添加窗体控件同样。假如你现在的VBE编辑窗口中没有“工具箱”,请通过“视图——>工具箱”菜单命令,或单击“工具栏”上的“工具箱”按钮打开它。 想知道“工具箱”里的控件是哪一种是“命令按钮”,哪一种是“标签”,哪一种是“文字框”,只需要把鼠标指针移到相应的控件上面,即会显示相应的说明。 在工具箱里用鼠标点选相应的控件,在窗体上按下鼠标左键,拖动即可将控件添加到用户窗体。控件的大小、在窗体上的位置我们可以通过鼠标进行修改,当然,同修改其他属性同样,我们也可以在属性窗口或程序的过程中用代码进行修改。 别闲着,动手试一试: (1)向窗体添加一个命令按钮 改按钮名称为“拟定”。设立显示在按钮上的文字(Caption属性)为“完毕”,高25(Height属性),宽60(Width属性),距“我的窗体”左端220(Left属性),距“我的窗体”顶端80(Top属性)。 当然,上面只是教你如何在属性窗口里对控件的属性进行修改。规定不是太完美的时候,我们可以在窗体上用鼠标拖动修改一下就可以了。 (2)向窗体添加一个标签 改标签的名称为“说明”。设立字体(Font属性)为“宋体,五号,斜体”,显示的内容(Caption属性)为“请输入内容”(慢速双击激活控件即可输入)。 (3)向窗体添加一个文字框 改文字框的名称为“内容”,设立字体(Font属性)为“楷体五号字”,字体颜色(ForeColor属性)为“红色”。 回到窗体设计模式,按F5键(或者执行“运营——>运营子过程/窗体”菜单命令,或单击工具栏上的“运营子过程/窗体”命令按钮),完整的一个用户窗体就显示在桌面上了。 (4)为命令按钮添加事件过程 上面的标签,文字框,命令按等控件(ActiveX控件,同我们刚开始说的窗体控件是有区别的)都属于对象,我们可以通过编写相应的代码设立其属性,调用其方法,响应其事件来达成我们需要实现的操作。 比如在“我的窗体”中,假如需要在点击“完毕”按钮(按钮名称为“拟定”)后,用一个Msgbox告诉我们,文字框(名称为“内容”)里输入的是什么内容。 有了这个思想,我们可以模拟把程序写为: Sub 拟定_单击() Msgbox “文字框里输入的内容是:” & 内容.输入的内容 End Sub 有了这个模拟的程序,再来写就简朴了。 “单击”是“拟定”的一个事件,即Click事件,“内容.输入的内容”是读取“内容”的Value属性。 这样,我们的程序事实上是: Sub 拟定_Click() MsgBox "文字框里输入的内容是:" & 内容.Value End Sub 回到窗体,双击按钮,切换到代码模式,在左面“对象列表”中选择对象展开阅读全文
咨信网温馨提示:1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。




宏学习入门手册.docx



实名认证













自信AI助手
















微信客服
客服QQ
发送邮件
意见反馈



链接地址:https://www.zixin.com.cn/doc/3908374.html