第12章(76)教材配套课件
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
' 释放对象变量
*第12章 VB与Excel
12.4 利用Excel中宏编写VBA代码
VBA(Visual Basic for Application)是微软应用程序共享 的一种通用自动化语言,也就是通常说的“宏”。它在语法 上与VB一致,可以说VBA是VB的一个子集,主要用于 Office的自动化编程。要全面掌握Excel中的VBA语言是非常 困难的,因为涉及到太多的对象、属性及其方法,但利用微 软公司提供的宏录制功能,学习就变得易如反掌。
' 当程序 ' 填写表
*第12章 VB与Excel
xsheet.Cells(1, 4) = "大学计算机基础" xsheet.Cells(1, 5) = "平均成绩" For i = 2 To 10
' 生成学号
xsheet.Cells(i, 1) = "'09108" & 1000 + I
Sum = 0
Dim xls As New Excel.Application Dim xbook As New Excel.Workbook Dim xsheet As New Excel.Worksheet Private Sub Command1_Click()
*第12章 VB与Excel
Set xbook = xls.Workbooks.Open("c:\temp.xls")
.AutoFit
' 最适合列宽
*第12章 VB与Excel
.HorizontalAlignment = xlCenter
' 水平方向居中
.VerticalAlignment = xlCenter
' 垂直方向居中
End With Next i xsheet.Rows(1).Insert
' 在原表第 1 行前插入一行
(1) 启动Excel,在任何一个单元格中录入一些内容,如 在C4单元格内录入“中华人民共和国”,选择“工 具”→“宏” →“录制新宏”,界面如图12-1所示。
*第12章 VB与Excel 图12-1 “录制新宏”对话框
*第12章 VB与Excel
所有内容均使用默认,单击“确定”按钮,Excel界面 上会多一个宏录制工具栏,如图12-2所示。
宏就是一段程序,存在于Office系列应用软件中,如 Word、Excel、PowerPoint、OutLook等。对这些应用软件的 所有操作步骤都录制成宏代码,然后再对宏代码进行分析, 是学习VBA最好的方法。下面以Excel为例介绍宏的录制方 法。
*第12章 VB与Excel
在Excel中设置单元格的字体、字号、边框线的VBA代 码的操作步骤如下:
Set xbook = xls.Workbooks.Add Set xsheet = xbook.Worksheets(1) xls.Visible = True
调试成功以后就可以删除此操作
xsheet.Cells(1, 1) = "学号"
头
xsheet.Cells(1, 2) = "高等数学" xsheet.Cells(1, 3) = "英语"
End With
With
' 对 A2 到 E11 区域设置表格线
Range("A2:E11")
*第12章 VB与Excel
.B orders (xlEdgeLeft).Lin eSt yle
=
xlContinuous
' 左边线
.B orders (xlEdgeTo p).Li neSty le
=
xlContinuous
End Sub Private Sub Command2_Click()
xbook.SaveAs("c:\ temp.xls ")
文件名存盘
' 以指定
象变量
xls.Quit Set xls = Nothing
' 释放对
Set xbook = Nothing
Set xsheet = Nothing MsgBox "请通过资源管理器查询 C 盘根文件 夹下生成的 temp.xls 文件"
*第12章 VB与Excel
12.1.3 VB中Excel的启动与关闭
例12-1 新建立一个VB的工程,在窗体上添加2个命令
按钮(Command1,Command2),按钮的Caption属性分别为
“启动Excel”和“关闭Excel”。
按照12.1.1节所述方法引入Excel对象库后输入以下代码
' 打开 Excel 文件
Set xsheet = xbook.Worksheets(1) xls.Visible = True xls.WindowState = xlMinimized
' 让 Excel 窗口最小化
For i = 1 To 5 With xsheet.Columns(i)
' 对各列样式进行设置
Private Sub Command1_Click()
Set xbook = xls.Workbooks.Add ' 启 动
Excel,并将自动创建的工作簿赋给 xbook
Set xsheet = xbook.Worksheets(1) ' 将 第 一个
工作表赋给 xsheet
xls.Visible = True
12.2 VB与Excel的数据交换
例12-2 将在VB中随机生成的一组学生成绩数据保存到 一个Excel工作簿中。
新建一个VB工程,引用“Microsoft Excel 11.0 object library”对象库后,在窗体上添加2个按钮(Command1, Command2),它们的Caption属性分别为“生成数据存入 Excel”和“保存及关闭Excel”。
End Sub
*第12章 VB与Excel
12.3 VB对Excel的排版操作
VB不仅可以与Excel实现数据交换,还可以对Excel进行 删除或插入表行、列以及各种排版操作。
以下程序代码可以实现将例12-1生成的文件打开并执行 排版操作:将标题行高设置为40磅,合并后水平居中、垂直 居中,字体为隶书,字号为24磅,对表中的行加上表线。同 例12-1一样,在窗体上添加2个命令按钮,并通过“工程” 菜单“引用”Excel对象库后,录入以下代码:
程序代码如下:
*第12章 VB与Excel
Dim xls As New Excel.Application Dim xbook As New Excel.Workbook Dim xsheet As N ew Excel.Worksheet Private Sub Command1_Click()
xlContinuous Selection.Borders(xlEdgeRight).LineStyle =
即可。
Dim xls As New Excel.Application
' 声明一个
Excel应用程序对象
Dim xbook As New Excel.Workbook
' 声明一个
Excel工作簿对象
Dim xsheet As New Excel.Worksheet ' 声明一个
Excel工作表对象
*第12章 VB与Excel
*第12章 VB与Excel 图12-3 VBA集成开发环境
*第12章 VB与Excel
(4) 展开窗口左侧的“模块”,可以看到其中的“模块 1”,这就是刚才录制的宏,双击“模块1”,可以在窗口右侧 看到录制的宏代码,如图12-4所示。
*第12章 VB与Excel 图12-4 宏代码
*第12章 VB与Excel
' 显示 Excel 窗口,
程序调试阶段显示该窗口非常重要
End Sub
Private Sub Command2_Click()
xls.Quit Set xls = Nothing
' 释放对象变量
Set xbook = Nothing
Set xsheet = Nothing
End Sub
*第12章 VB与Excel
' 内部垂直线
.Borders(xlInsideHorizontal).LineStyle =
xlContinuous
' 内部水平线
End With
*第12章 VB与Excel
MsgBox "排版结束!" End Sub Private Sub Command2_Click()
xb oo k .S ave xls .Q uit Set xls = Nothing Set xbook = Nothing Set xsheet = Nothing End Sub
*第12章 VB与Excel 图 12-2 处于宏录制状态的Excel界面
*第12章 VB与Excel
(2) 选中单元格“C4”,设置字体为“黑体”,字号为 24磅,左右加边框,完成这些操作后单击宏录制工具栏中的 停止录制按钮,结束宏录制。
(3) 按Alt + F11键进入Excel中的VBA集成开发环境,这 个界面和VB的集成开发环境非常相似,如图12-3所示。
由于宏会对每一个步骤分别进行录制,所以代码看起来 特别繁琐,可以将其中没有进行特别处理的代码全部删除, 这样就可以得到想要的VBA指令了。简化后的VBA代码如 图12-5所示。
*第12章 VB与Excel 图12-5 简化后的VBA代码
*第12章 VB与Excel
以上代码其实还可以再简化如下: Sub Macro1() = "黑体" Selection.Font.Size = 24 Selection.Borders(xlEdgeLeft).LineStyle =
For j = 2 To 4 xsheet.Cells(i, j) = Int(Rnd() * 51) +
50 Sum = Sum + xsheet.Cells(i, j)
Next j
xsheet.Cells(i, 5) = Round(Sum / 3, 2) Next i
*第12章 VB与Excel
“工程”菜单中的“引用”功能项,并选取项目中的 “Microsoft Excel 11.0 object library”(Excel版本不同,这个 选项中的版本号可能不一样)即可。引用Excel对象库后,对 编写代码会带来很多便利。
*第12章 VB与Excel
12.1.2 Excel对象声明 Excel是以层次结构组织对象的,其对象模型中含有许
xsheet.Cells(1, 1) = "XX 班 级 学 生 成绩 表 "
' 写入表标题
xs heet.Range(" a1:e1").Merg e
' 合并单元格区域
*第12章 VB与Excel
xsheet.Range("1:1").RowHeight
=
40
' 设置第 1 行行高为 40 磅
xsheet.Range("2:11").RowHeight
*第12章 VB与Excel
*第12章 VB与Excel
12.1 VB中Excel的相关操作 12.2 VB与Excel的数据交换 12.3 VB对Excel的排版操作 12.4 利用Excel中宏编写VBA代码
*第12章 VB与Excel
12.1 VB中Excel的相关操作
12.1.1 Excel对象库引用 在VB中引用Excel对象,首先需要打开VB编程环境
多不同的对象元素。编程过程中主要用到以下4个层次的对 象。
(1) Application对象,即Excel程序本身。 (2) WorkBook对象,即Excel的工作簿文件对象。 (3) WorkSheets对象表示的是Excel的工作表对象集。 (4) Cells、Range、Rows、Columns对象分别表示Excel 工作表中的单元格对象集、区域对象、行对象集、列对象集。
' 顶边线
.Borders(xlEdgeBottom).LineStyle
=
xlContinuous
' 底边线
.Borders(xlEdgeRight).LineStyle
=
xlContinuous
' 右边线
.Borders(xlInsideVertical).LineStyle
=
xlContinuous
=
24
' 设置第 2 到 11 行行高为 24 磅
With
xsheet.Cells(1,
1)
' 设置表标题字体及字号
= "隶书"
.Font.Size = 24
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter