Presentation is loading. Please wait.

Presentation is loading. Please wait.

第10章VBA会计应用与实践 第11章会计凭证管理模块设计与实现

Similar presentations


Presentation on theme: "第10章VBA会计应用与实践 第11章会计凭证管理模块设计与实现"— Presentation transcript:

1 第10章VBA会计应用与实践 第11章会计凭证管理模块设计与实现
第五部分: 会计信息系统:技术与开发 第10章VBA会计应用与实践 第11章会计凭证管理模块设计与实现

2 第10章 VBA会计应用与实践 10.1VBA简介 10.2VBA对象模型 10.3VBA程序语句 10.4程序语句 10.5控件对象

3 10.1 VBA简介 VBA(Visual Basic for Application)是Microsoft Office系统 软件的内置编程语言。它用来为Microsoft Office套件提供一 致的应用程序开发平台。VBA不能创建独立运行的应用程序, 而只能在宿主应用程序中运行。宿主应用程序就是诸如Word、 Excel、Access等Microsoft Office系统软件的子系统。 在Office中提供的VBA开发界面称为VBE(Visual Basic Editor)。 VBE窗口是一个与Excel主窗体分离的窗体。包括菜单栏、工具 栏、工程资源管理窗口、属性窗口、代码窗口等。通过编辑器 可以创建程序也可以编辑已有的程序。 本章将介绍如何利用VBA开发常见的会计应用程序和功能模块。

4 10.1 VBA简介 1、宏 宏(Macro)是一个命令集合。它可以使Excel自动完成用户指定的动作组合。录制宏命令的时候,Excel将自动记录并存储用户所执行的一系列菜单命令信息,运行宏时,Excel则自动将已经录制的命令组合重复执行,从而实现EXCEL操作的自动化。 宏命令本身实际上就是一种VBA程序,它是存储在VBA模块中的一系列命令和函数,当执行宏命令所对应的任务组合时,Excel将自动启动该VBA程序模块的运行。由于宏是一种程序,有些居心叵测的人利用此性质制作出所谓的宏病毒。为预防宏病毒,Excel或是Word只要检测出文件中有宏将被载入,便发出安全警告。

5 录制宏的步骤如下: 宏命令的使用步骤如下: (1)单击“开发工具”菜单“宏”子菜单下的“录制宏”菜单项,启动宏录制器。
(2)在“录制宏”对话框的“宏名”文本框中为所要录制的新宏起一个名字,并在点击“确定”后,进入新宏的正式录制阶段。 (3)开始一切需要录制的操作。 (4)单击“开发工具”菜单“宏”子菜单下的“停止录制”菜单项,结束宏的录制过程。 宏命令的使用步骤如下: (1)单击“开发工具”菜单“宏”子菜单下的“宏”菜单项。 (2)在弹出的“宏”对话框中选定要运行的“宏”。 (3)单击“宏”对话框的“执行”按钮。

6 10.1 VBA简介 2 、录制宏-费用分配 录制费用分配
某企业生产甲、乙两种产品,2013年1月各产品领用的原材料成本分别为40000元,36000元,发生的人工小时分别为400小时、500小时,应向产品负担的直接人工成本9000元,应向产品负担的制造费用为63000元,要求编制费用分配表,分别计算甲、乙两种产品的成本。

7 (1)首先创建名为“费用及工时表”的工作表,将有关基础数据输入表中。
建立一个名为“费用分配表”的工作表

8 (2)单击“开发工具”菜单“代码”选项卡下的“录制宏”按钮,启动宏录制器。
(3)在“录制新宏”对话框的“宏名”文本框中为所要录制的新宏起一个名字,并在点击“创建”后,进入新宏的正式录制阶段。

9 (4)将“费用及工时表”中的B2:C3单元格数据复制到“费用分配表”的B3:C4单元格。将“费用及工时表”中的D4:E4单元格数据复制到“费用分配表”的D5:E5单元格。
(5)在“费用分配表”中D2单元格键入”=D5/SUM(B3:B4)”,在E2单元格键入”=E5/SUM(B3:B4)”,分别计算出人工费用、制造费用的人工工时费率。 (6)在“费用分配表”中D3单元格键入”=B3*$D$2”后按回车键,利用自动填充柄将D3单元格的公式下拉填充到D4单元格,计算出乙产品的人工费用。 (7)在“费用分配表”中E3单元格键入”=B3*$E$2”后按回车键,利用自动填充柄将E3单元格的公式下拉填充到E4单元格,计算出乙产品的制造费用。 (8)在“费用分配表”中F3单元格键入”=SUM(C3:E3)”后按回车键,利用自动填充柄将F3单元格的公式下拉填充到F4单元格,计算出乙产品的制造费用。 (9)在“费用分配表”中F5单元格键入”=SUM(F3:F4)”后按回车键,计算出两种产品的总成本。 (10)单击“开发工具”菜单中的,“停止录制”,结束宏的录制。

10 宏的编辑 如果在录制宏时出错,或是希望对宏的功能进行改进,就需要对宏进行编辑。用户可以单击“开发工具”菜单“宏”子菜单下的“宏”菜单项,选择【编辑】按钮。就跳转到Visual Basic 编辑器对宏进行编辑,添加、删除、或者修改代码。 Sub 费用分配() Range("D2").Select ' ' 费用分配 宏 ActiveCell.FormulaR1C1 = "=R[3]C/SUM(R[1]C[-2]:R[2]C[-2])" Range("D3").Select ActiveCell.FormulaR1C1 = "=RC[-2]*R2C4" Sheets("费用及工时表").Select Selection.AutoFill Destination:=Range("D3:D4"), Type:=xlFillDefault Range("B2:C3").Select Selection.Copy Range("D3:D4").Select Sheets("费用分配表").Select …… …… Range("B3").Select ActiveSheet.Paste Selection.AutoFill Destination:=Range("F3:F4"), Type:=xlFillDefault Range("D4:E4").Select Range("F3:F4").Select Application.CutCopyMode = False Range("F5").Select ActiveCell.FormulaR1C1 = "=SUM(R[-2]C:R[-1]C)" Range("D5").Select Range("F6").Select End Sub

11 (2)无法根据用户的输入或者单元格的数值执行不同的操作。 (3)很难显示和使用用户自定义的窗体。
宏的不足之处在于实现一个功能的时候,需要编写冗长的代码。 并且宏录制器也有一定的局限性。比如: (1)宏运行时很难向用户提示信息。 (2)无法根据用户的输入或者单元格的数值执行不同的操作。 (3)很难显示和使用用户自定义的窗体。

12 从会计实践中来看,编写VBA代码的优点如下:
(1)开发周期短。VBA的开发工具集成于Excel系统中,简单易学,开发时间远远低于其他专业软件开发工具。 (2)开发费用少。对开发者的计算机水平要求不高,不需要专业的软件工程方法。开发者只需要了解业务的操作和Excel的知识就可以开发。 (3)设计和输出美观的界面。用VBA开发的应用可以为用户提供直观的交互窗体,方便的表格。 (4)系统维护简单方便。用户可以自行维护,不需要额外的计算机专业人员来维护。

13 3、VBE编辑器 工程资源管理器 属性窗体 代码窗体

14 工程资源管理器窗口:列出了打开的工作薄和它们所加载的附加项,包括ExceI对象、窗体、模块等。
在Excel对象的项目中,列出了所有打开的工作表(如Sheet1、Sheet2、Sheet3等)的表对象和一个工作簿(ThisWorkbook)对象。专用于工作表的程序代码(例如工作表事件)都被放置于相应的工作表对象中,而专用于工作薄的事件程序代码被放置于ThisWorkbook对象中。 属性窗口: 用来查看或设置对象的属性。选中对象后,单击属性窗口按钮,或按[F4]键,或执行[视图]菜单中的[属性窗口],就会弹出属性窗口。 设置对象或控件属性的方法有两种:一种方法是直接在属性窗口进行设置。即单击或双击某属性右边的属性值,选择或输入有关属性值;另一种方法是在程序中设置属性 属性窗口又分为【按字母序】和【按分类序】两种,主要是为了方便查看对象属性。 代码窗体

15 对象框 过程/事件框 边界标识条 过程查看按钮 全模块查看按钮 拆分栏

16 5.2VBA开发基础 VBA是面向对象的程序设计语言。在Excel VBA中有各种层次的对象,不同的对象有其本身的属性、方法和事件。 例如,
工作簿对象(WorkBook)可以用Open方法打开; 可以用Name属性返回该工作簿的名字; 窗体控件有各种属性,有各种触发事件。

17 10.2VBA对象模型 1、VBA对象模型简介 (1)对象和对象集合
对象集合是一个包含若干个其他对象的对象,而这些对象通常但并不总是相同的类型。例如,在Excel中的WorkBooks集合包含了所有已打开的WorkBook对象,也包括了用户自定义的窗体对象。

18 (2)对象的属性 属性是各对象的属性,它定义了对象的特征(诸如大小、颜色或屏幕位置),或某一方面的行为(诸如对象是被激活或可见)。可以通过修改对象的属性值来改变对象的特性。例如,用户可以通过设置对象的属性来控制对象的外观和位置。对象的属性一次只能设置为一个特定的值。

19 (3)对象的方法 方法指的是对象能执行的动作。每一种想要对象做的操作都被称为[方法]。例如,用户使用Add方法添加一个新工作簿或者工作表,或者为某些窗体控件增加一个新的项目。 对象可以使用不同的方法。例如,单元格区域Range对象有专门的方法让用户清除单元格内容(ClearContents方法)、清除格式(ClearFormats方法)以及同时清除内容和格式(Clear方法),还有让用户选择(Select)、复制(Copy)或移动(Move)对象的方法。

20 (4)对象的事件 事件是一个对象可以辨认的动作,像单击鼠标、双击鼠标或按下键盘上的某一个键等,并且可以通过编写特定功能的代码针对此动作来做响应。 例如,在下列两种情况下,就会发生Click事件: ①用鼠标单击控件。 ②用户最终在几种可能的值中为控件选择—个值。

21 2 、对象的使用实验:自动填充 在VBA应用开发中,熟练、灵活应用Excel中各种对象的事件、属性、方法,就可以实现很多有用的功能。
实验内容:在选择Sheet1的某一个单元格的时候,将该单元格的值设置为100

22 在Excel主要有4层基本对象,由上至下分别为
3、工作簿对象 在Excel主要有4层基本对象,由上至下分别为 Aplication(Excel程序本身) WorkBooks(工作簿)、 Worksheets(工作表对象集) Range(一个单元格或者多个单元格构成的单元格区域对象)。 在计算机会计应用方面,我们通常需要操作工作簿、 工作表和区域。

23 一种是使用工作表名,另一种是用其在工作簿中的位置(索引号)来确定。
Worksheet对象 一个Excel文件它对应一个工作簿对象(Workbook),而Workbook对象的下一层就是Worksheets对象集,即Worksheets集合,它包含多张工作表Worksheet。Worksheet对象就是Worksheets对象集中的一张工作表。 引用工作表对象的方法有两种: 一种是使用工作表名,另一种是用其在工作簿中的位置(索引号)来确定。

24 (1)Worksheets对象集的常用属性
①Count,取得当前工作簿中已打开的工作表的数量。 Dim myNumber as Integer myNumber = Worksheets.Count ②Visible,设置工作表是否可见。 Worksheets(“Sheet1”).Visible = False Worksheets(2).Visible = True

25 (2)Worksheets对象集的常用方法
①Add,新建一张工作表并将其添加到集合中。例如: Worksheets.Add Count:=2,Before:= Sheets(1) ②Copy将指定工作表复制到工作簿的另一位置.例如: Worksheets(“Sheet1”).Copy After := Worksheet(“Sheet3”) ③Move,将指定工作表移到工作簿的另一位置。例如: Worksheets(“Sheet1”).Move After := Worksheet(“Sheet3”) ④Delete,删除指定的工作表. Worksheets(“Sheet1”).Delete

26 (3)Worksheet对象的常用属性 ①Cells,选取指定的单元格或单元格区域。例如: ActiveSheet.Cells.Select
②Columns,选取指定的列。例如: Worksheets(“Sheet1”).Columns(1).Font.Bold = True ③Rows,选取指定的行。例如: Worksheets(“Sheet1”).Row(3).Font.Bold = True ④Name,取得或设置工作表的名称。例如: Dim mySheetName As String mySheetName = ActiveSheet.Name ⑤Range,返回一个Range对象,用来选取指定的单元格或单元格区域。 Range(“A1:B3”).Select ⑥UsedRange,返回指定工作表上己使用区域的Range对象,为只读属性 ActiveSheet.UsedRange.Select ⑦Visible,设置工作表是否可见。

27 (4)Worksheet 对象的常用方法 ①Activate,使当前工作表成为活动工作表。
Worksheets(“Sheet1”).Activate ②Select,选定工作表对象。 Worksheets(“Sheet1”).Select ③Copy,用来对工作表进行复制。 ④Paste,用来将剪贴板中的内容粘贴到工作表上。

28 (5)Worksheet对象的事件 当工作表被激活、用户更改工作表上的单元格或数据透视表时,就会触发工作表事件。 Worksheet对象的事件有: Activate、BeforeDoubleClick、BeforeDRightClick、Calculate、Change、Deacttivate、SelectionChange等。

29 (6)Worksheet对象的常用事件 ① Change事件
当用户更改工作表中单元格的值(例如输入、编辑、删除或粘贴数据),或外部链接引起单元格的更改时产生此事件。 ② SelectionChange事件 当工作表上的选定区域发生改变时,将产生本事件。 ③ Calculate事件 在对工作表进行重新计算时产生此事件。

30 Range对象 worksheet对象的下一层是Range(单元格区域)对象,Range对象可以是某个单元格(Cell)、某一行(Row)、某一列(Column)或者多个相邻或不相邻单元格区域对象。利用这一对象,可以方便地控制Excel工作表中的上述对象。

31 (1)Range对象的常用属性 ①Cells,该属性返回一个Range对象,该对象代表指定单 元格区域中的单元格。只读。
②CurrentRegion,该属性返回Range对象,该对象代表 当前区域,当前区域是一个边缘是任意空行和空列组 合成的范围。该属性是只读属性。当选择多行多列中 有数据的单元格区域时,可使用CurrentRegion属性。 提示:该属性不能用于被保护的工作表。 ③UsedRange,该属性指定工作表上已使用区域的Range 对象。只读。

32 ④Formula,该属性返回或用来设定一个单元格区域对象的公式。
⑤Name,该属性用来为一个单元格区域对象命名。 ⑥Value,该属性用来为菜单元格区域赋值。variant类型,可读写。 ⑦Count,该属性用来返回一个单元格区域中的行 ⑧Offset,该属性返回一个Range对象,该对象代表某个指定区域以外的区域。只读。

33 ⑨RowHeigh和ColumnWidth。
RowHeigh :返回或设置指定单元格区域内的所有行的行高, 如果区域中所有行的行高都相等,RowHeigh由属性返回 该高度。如果区域中的各行的行高不等,则返回Null。 ColumnWidth:返回或设置指定单元格区域内的所有列的 列宽。如果区域中所有列的列宽都相等,ColumnWidth属 性返回该宽度值。如果区域中的列宽不等,本属性返回 Null。 ⑩NumberFormat和NumberFormatLocal。 NumberFormat属性返回或设置Range对象的格式代码。如 果指定区域中的所有单元格包含不同的数字格式,则该值 为Null。 NumberFormatLocal属性以用户语言字符串形式返回或设置 Range对象的格式代码。

34 (2)Range对象的常用方法 ①Activate,激活单个单元格,该单元格必须处于当前选定区域内。 ②Autofit,将单元格区域中的列宽和行高调整为最适当的值。 ③Delete,删除单元格对象,可以删除个单元格或单元格区域、或数行、一列或数列。 ④Clear、Clearcomments、CleaContents和ClearFormats。能够清除单元格区域对象的组成部分。

35 ⑤Copy,将单元格区域对象复制到剪贴板中或别处。
⑥Cut,将单元格区域对象剪贴到剪贴板中或别处。 ⑦Merge和unMerge。Merge在指定的单元格区域内创建合并单元格;unMerge将合并单元格区域拆分为独立的单元格。 ⑧select,该方法用来选定某个单元格和单元格区域。

36 单元格区域的应用 (1)选取单元格区域的基本语句示例
选择某个单元格:Range(“A1”).Select或Cells(1,1).Select 选择连续的单元格: Range(“A1:G8”).Select,Range(Cells(1,1),Cells(8,7)) .Select 单元格间的移动: ActiveCell.Offset(13,14).Select,Selection.Offset(-3,4).Select,Range(“G5”).Offset(-3,-4).Select 选择某列:Columns(“A”).Select 选择连续的几列:Columns(“A:K:).Select或Range(“A:K”).Select 选择所有列:Columns.Select 选择某行:Range(“1:1”).Select或Rows(3).Select 选择连续的几行:Rows(“4:10”).Select或Range(“4:10”).Select 选择所有行:Rows.Select 选择当前工作表中A列数据区域底部的最后—行:Range(“A65536”).End(xlUp).Select 选择当前工作表中第5行数据区域右边的最后一列:Rows(“5”).End(xlToRight).Select 选择整个工作表区域:Cells.Select

37 单元格区域的应用 (2)向单元格输入数据的基本语句示例
给当前单元格赋值:ActiveCell.Value = 10,ActiveCell.Value = “合计”。 直接给单元格赋值:Cells(1,1)=200或Range(“A1”)=200。 给单元格区域赋值:Range(“A1:B2”).Value=100,Range(“A1:B2”)=100或 Range((Cells(1,1),(Cells(2,2))=100。 向单元格A1、B1、C1中分别输入”姓名”、”性别”和”部门”(即输入列标题): Range(“A1:C1”) = Array(“姓名”,”性别”,”部门”)。

38 10.3 VBA程序语句 1、常量 在整个程序运行过程中,值保持不变的量称为常量。常量一般分为以下几种:
数值常量、字符及字符串常量、符号常量、逻辑常 量、日期常量、内置常量

39 2、变量的类型 变量 在程序运行今值发生变化的数据称为变量。变量代表 数据的一个名称,通过变量可引用它所储存的值。
变量的数据类型多达11种,它们是Integer(整型)、 Long(长整型)、Single(单精度浮点型)、Double(双精度浮 点型)、currency(货币型)、Byte(字节型)、String(字符串 型)、Boolean(布尔型)、Date(日期型)、Object(对象型) 和Variant(变体型)。 变量数据类型决定了变量能够储存哪种数据。

40 变量的声明 变量的声明就是事先将变量通知程序。对变量进行声明一般可采用Dim或ReDim,此外还有Public 、Privat、Static ,它们既可以对一个变量进行声明,也可以对多个变量进行声明。 语法为:Dim 变量名 as 数据类型 例如: Dim AccountName as String AccountName = ‘我是一名会计师’ 即定义了一个名为AccountName 的字符串型变量。并赋于这个变量的值为“我是一名会计师”。

41 3、对象变量 除了储存数据的普通变量之外,还有引用VBA对象的特殊变量,这些变量称为对象变量。对象变量不储存数据,但它们告诉数据在哪儿。对象变量的声明和前面介绍的变量声明类似,唯一的不同是在关键字As后面,用户必须输入词语关键字Object作为数据类型, 例如: Dim myRange As Range

42 4、运算符 ①算术运算符:用来对数值进行计算 ②关系运算符:用于比较 ③连接运算符:用来合并字符串 ④逻辑运算符:用来执行逻辑运算
+、 -、 *、 /、 \、^和Mod ②关系运算符:用于比较 < (小于)、<=(小于等于)、>(大于)、>=(大于等于)、=(等于)、<>(不等于) ③连接运算符:用来合并字符串 &和+ ④逻辑运算符:用来执行逻辑运算 And(与)、Eqv(等价)、Imp(包含)、Not(非)、Or(或)、Xor(异或)

43 5、过程与函数 过程就是一段程序代码,它分为两种类型:子程序和自定义函数。 子程序结构如下: Sub 过程名(参数1,参数2 …)
子程序代码 End Sub 自定义函数结构如下: Function 函数名(参数1,参数2,…) 程序代码 函数名 = 表达式 End Function

44 过程的调用 子程序可以单独使用,也可以被其他的子程序调用。调用子程序的方法有两种; ①直接使用子程序名。此时,如果子程序带参数,则参数应直接写在子程序名后面,不能有括弧。 ②使用Call命令。但在使用Call命令时需注意,如果子程序带有参数,则在子程序后面必须把参数写在括弧中;如果子程序不带有参数,则直接写子程序名即可

45 EXCEL工作簿函数 在任何过程中都可以使用Excel工作簿函数。使用 ExceI工作薄函数的方法有两种:
一是利用Application对象 例如,求单元格区域A1:A100中的最大值和最小值的语句如下 myMax = WorksheetFunction.Max(Range(“A1:A100”)) 二是利用字符串处理的方法 例如,求单元格区域A1:A100的最大值和最小值,就可以通过如下的程序来实现: Public Sub MySub() Range(“B1”) = “=Max(A1:A100)” Range(“B2”) = “=Min(A1:A100)” End Sub

46 个人工资和薪金所得的所得税计算表格,适用七级累进税率,税率为5%~45%。
6、实验:个人所得税计算 个人工资和薪金所得的所得税计算表格,适用七级累进税率,税率为5%~45%。 级次 全月应纳税所得额 税率 速算扣除数 1 不超过1500元的部分 3 2 超过1500元一4500元的部分 10 105 超过4500元一9000元的部分 20 555 4 超过9000元一35000元的部分 25 1005 5 超过35000元一55000元的部分 30 2755 6 超过55000元一80000元的部分 35 5505 7 超过80000元的部分 45 13505 请利用VBA编制个人所得税自定义函数

47 10.4 程序语句 为了描述语句的执行过程,VBA语言提供了一套描述机 制,这种机制称为“控制结构”,它的作用是控制语句的 执行过程。 把“控制结构”所用的语句或命令称为结构控制语句。 VBA提供的控制结构有以下三种: 语句块1 条件 语句块2 True False 顺序结构 分支结构 循环结构

48 1、顺序结构 顺序结构是最简单的程序结构,程序的执行次序是按语 句的书写顺序从上到下逐条进行。
例如:从键盘输入两个数,并将这两个数显示在立即窗 口中的程序段。 Private Sub 顺序结构() a = InputBox("请输入第1个数") b = InputBox("请输入第2个数") Sheet1.Cells(1, 1) = a Sheet1.Cells(1, 2) = b End Sub

49 2、分支结构 分支结构有两路分支和多路分支两种情况,都可以通过专门的选择 结构语句(又叫分支语句或条件语句)来实现。常用的选择语句有If语句 (两路分支)和select case语句(多路分支)。无论选择结构有两路分支还是 多路分支,程序的流向只能根据条件的值选择其中的一个分支。 (1)单行If条件语句 语句所有部分必须在一行中写完。语法格式如下: If <条件> Then <语句A> [Else语句B] Private Sub单行If语句() Dim A,B A = InputBox(“请输入第1个数”) B = InputBox(“请输入第2个数”) If A < B Then Sheet1.Cells(1, 1) = A & B Else Sheet1.Cells(1, 1) = B & A End Sub

50 (2)多分支选择语句 多分支选择结构语句是块IF语句的一种变形,它以Select Case开头,以End Select结束。其语法格式如下:
语句块2 …..] [Case Else 语句块n] End Select

51 3、循环结构 循环结构也称为重复结构,是指程序代码在执行的过程中,其中的 某段代码需要被重复执行若干次。被重复执行的代码段,通常称之为 “循环体”。 VBA为用户提供了DoWhile|Until…Loop、Do…Loop、While…Wend 和For…Next的循环结构语句。 (1)Do … Loop Do…Loop语句也是根据条件决定循环的语句。它包括四种语法格式。 Do while<条件表达式> <语句块1> <Exit Do> <语句块2> Loop Do while<条件表达式> <语句块1> <Exit Do> <语句块2> Loop While <条件表达式> Do Untile<条件表达式> <语句块1> <Exit Do> <语句块2> Loop Do <语句块1> <Exit Do> <语句块2> Loop Until <条件表达式> 表达式1 表达式2 表达式3 表达式4

52 (2)For …Next 在不能预知循环体被重复执行多少次才能完成任务的情况下,宜使用Do…Loop语句但如果循环次数已知或可预先获得,则最好使用我们下面介绍的For…Next 循环。其语法如下: For <循环变量>= <初值>To <终值> [Step(<步长>)] [<语句块1>] [Exit For] [<语句块2>] Next [<循环变量>] 实现将1到100 之间的奇数填充到Sheet1表的A1到A50单元格。 Private Sub 循环结构() Dim j As Integer j = 1 For i = 1 To 100 Step 2 Sheet1.Cells(j, 1) = i j = j + 1 Next i End Sub

53 小实验:执行程语句 实验内容: 在Sheet1表中插入一个按钮,点击按钮,将1~100之间的奇数依次填充到A1到A50单元格。

54 10.5 控件对象 窗体是Excel VBA的最重要的对象,是构成应用程序界面的基本模块。窗体的功能是为用户提供交互式的接口,使应用程序的界面美观实用,用户只需单击界面上的相关按钮或菜单,就可在窗体或Excel上作表上获得所需要的数据,或通过窗体的有关对象,对数据进行计算整理并输出到Excel工作表上。

55 1、用户窗体 创建用户窗体 创建用户窗体的方法是:在VBE中,执行[插入]→[用户窗体]命令,或单击插入用户窗体按钮,系统就自动插入一个默认名为UserForm1用户窗体 控件工具箱:提供了设计制作用户窗体的重要的基础组件。 常用的控件有:标签(LabeL)、文字框(TextBox)、复合框(ComboBox)、列表框(ListBox)、复选框(CheckBox)、选项按钮(OptionButton)、切换按钮(ToggleButton)、框架(Frame)、命令按钮(CommandButton)、滚动条(ScrollBar)、多页(又称选项卡控件) (MultiPage)、图像(Image)等

56 2、窗体属性 窗体属性:在插入用户窗体时,系统自动插入的用户窗体的属性为系统的默认值。在窗体的实际设计中,往往需要对窗体的属性进行重新设置。选择窗体,按[F4]键,即可打开窗体的属性窗口

57 标签用于显示标题文本信息,一般用于在窗体上进行文字说明,标签的常用属性有:
3、标签[LabeI] 标签用于显示标题文本信息,一般用于在窗体上进行文字说明,标签的常用属性有: (1)Caption:标签中显示的内容,最多可有1024个字符。 (2)Alignment:标签中文本的对齐方式,有3种设置方式: 0—fmTextAlignmentLeft:左对齐(默认)。 1—fmTextAlignmentCenter:居中对齐。 2—fmTextAlignmentRight : 石对齐。 (3)BorderStyle:用于设置边界形式,有两种形式: 0—fmBorderStyleNone:无边界(默认) 1—fmBorerStyleSingle:有边界。 (4)specialEffect:用来设置标签对象的外观, 0—fmSpecialEffectFlat;平坦(默认)。 1—fmSpecialEffectRaised: 凸起。 2—fmSpecialEffectSunken:凹陷。 3—fmSpecialEffectEched:周围有框线。 6—fmSpecialEffectBump: 周围框线凸起。 标签的默认属性是Caption属性,默认事件是Click事件。

58 文本框用于接收用户输入的信息,或显示系统提供的文本信息,用户可以在文字框中编辑文本。文字框的常用属性有:
4、文本框[TextBox] 文本框用于接收用户输入的信息,或显示系统提供的文本信息,用户可以在文字框中编辑文本。文字框的常用属性有: (1)Text或Value;文字框中的内容。 (2)PasswordChar:用于设置是否在文字框中显示输入的字符,即输入的字符是否为口令。默认值为空字符,表示输入的是文本。如果为非空字符(如*),则每输入一个字符就在文字框中显示一个字符(*)。 (3)MultiLine:是否可以输入多行文本,是只读属性,True为可输入多行文本,False为只能输入一行文本(默认)。 (4)ScrollBars:是否含有滚动条。 0—(None)表示不含有滚动条(默认); 1—(Horizontal)表示含水平滚动条; 2—(Vertical)表示含垂直滚动条; 3—(Both)表示含水平和垂直滚动条。 (5)Locked:设置用户是否可以编辑文字框中的文本。True为锁定,不能编辑文字框中的文本,False为可以编辑文字柜中的文本(默认)。 事件。

59 5、命令按钮[CommandButton] 命令按钮通常用于当用户单击时完成某种功能。命令按钮的常用属性有: (1)Caption:命令按钮的文字。 (2)Cancel:是否为取消按钮。True时为取消按钮,相当于按[Esc]键;False时不是取消按钮(默认)。 (3)DefauIt:是否为默认按钮。True为默认按钮,相当于按[Enter]键;False时不是默认按钮(默认)。 命令按钮的默认事件是Click事件,即在按钮上单击鼠标或直接按空格键或回车键。

60 6、日历控件[CaIendar] 日历控件不是一个常用控件。在使用日历控件时,需要用户将其添加到控件工具箱中。在工具箱窗体空白处点击右键选择[附加控件]对话框的[可用控件]列表框中,日历控件的名字为[Calendar Control 8.0] 日历控件的主要属性如下: (1)Day:月份中当前所选的日期。 (2)Month:在[日历]控件中显示的当前月。 (3)VaIue:与[日历]控件中所选定的日期相对应的日期值。 (4)Year:当前选定的年份。 日历控件的主要事件是Click事件。

61 7、实验:在EXCEL表格中使用窗体 在Sheet1工作表中点击某一个单元格时,弹出一个用户窗体,该用户窗体可以输入文本信息,输入完成后,点击关闭按钮,文本信息自动填充到单元格中。

62 视频教学资源: 宏的应用费用分配 自动填充 VBA程序结构 控件综合实验 自定义过程与函数:个人所得税


Download ppt "第10章VBA会计应用与实践 第11章会计凭证管理模块设计与实现"

Similar presentations


Ads by Google