通过VB操作Excel的应用
姜 新
(营口职业技术学院,辽宁 营口 115000)
摘 要:文章介绍了通过VB随机生成的一组学生成绩数据保存到一个Excel工作表中的实例,对Excel进行相应的操作,
然后实现调用Excel中的VBA指令将刚生成的文件打开并执行各种排版操作。关键词:Visul Basic;Excel;排版作者简介:姜新(1981- ),女,辽宁营口人,学士,讲师,研究方向:计算机教育。
1 引言
VB是可视化、事件驱动、面向对象的结构化程序设计语言,已经成为许多学好编程的专业程序员做为Windows 应用程序的开发工具,具有强大的数据处理功能,但要想用VB输出比较复杂的表格是很困难的,比如对表格的排版操作,Excel的数据处理功能相对较弱,但Excel对表格的排版等操作是很容易来实现的,Excel是非常强大的电子表格处理软件,在EXCEL中处理数据是很多人都喜欢的,在VB中引用的话,得用到Excel对象库,这样在Vb的代码窗口中可以应用[1]。
通过应用程序VB来操控Excel,其实就是在VB中将Excel作为一个外部对象来引用,就是通过Excel 提供的对象及其对象的属性、方法和事件,然后在VB的代码窗口中进行调用的过程。文章就是通过实例的形式介绍如何通过VB程序,调用Excel对象,将生成的数据写入到Excel中,然后对已生成的数据通过调用Excel对象对其生成的学生成绩单进行排版,最终保存。2 对Excel的操作介绍2.1 Excel对象模型
在与Excel进行交互之前,了解Excel对象模型的整体结构非常重要,这使得我们对Excel有一种更整体全面的了解。一个Excel应用程序就是一个Application,全局的对象比如菜单,工具条都属于Application对象,一个Application可以包含很多个Workbook (Workbooks),具体而言就是,可以同时打开很多个工作簿(Workbooks),但某一时候只有一个工作簿(Workbook)处于编辑状态,这个工作簿叫做活动工作簿(ActiveWorkbook),一个Workbook可以包含很多个Worksheet(Worksheets)。具体而言就是,一个工作簿可以包含很多工作表(Worksheets),某一时刻只有一个工作表(Worksheet)处于编辑状态,这个工作表称之为活动工作表(ActiveWorksheet),一个Workbook还可以包含很多Shapes对象,工作表中还可以包含一些图表,标记,注释,控件等,这些都是浮在Sheet页
上的,这些统称为Shapes,其中我们接触的最多的是图表(Charts),一个WorkSheet可以包含很多个Range对象,具体而言,一个工作表里面有很多个单元格,单元格范围用Range表示,Range可以使一个单元格,也可以使多个单元格,单元格都是嵌入到Sheet页中的。其中最重要的几个对象为Appl
ication,Workbook,Worksheet和Range对象[2]。2.2 在VB工程中添加对Excel对象库引用
若要在VB中操作Excel,就得建立两者之间的联系,就得需要在VB工程中添加对Excel类型库的引用。具体步骤如下:1)单击开始,程序,microsoft visual basic 6.0中文版,标准的exe,从菜单“工程”中选择“引用”;2)在“引用”对话框中选择可用的引用:"Microsoft Excel 12.0 Object Library"[3];3)单击左边小方框,使之出现“√”符号;4)按“确定”按钮退出。2.3 Excel对象声明
EXCEL是以层次结构组织对象的,其对象模型中含有许多不同的对象元素。编程过程中主要用到以下4个层次的对象。
(1)Application对象,即Excel程序本身,Excel Application对象表示Excel应用程序本身。Application 对象公开了大量有关正在运行的应用程序、应用于该实例的选项以及在该实例中打开的当前用户的对象的信息。声明一个Excel应用程序对象的代码为Dim xls As New Excel.Application。(2)WorkBook对象,即Excel的工作簿文件对象;声明一个Excel工作薄对象的代码为Dim xbook As New Excel.Workbook。(3)WorkSheets对象,表示的是Excel的工作表对象集;例如:worksheets(1)表示第一个工作表。声明一个Excel工作表象的代码为Dim xsheet As New Excel.Worksheet。(4)Range对象:是Excel应用程序中最常用的对象。在能够处理Excel内的任何范围之前,必须将它表示为Range对象,并处理该对象的方法和属性。Range对象表示单元格,行,列,包含一个或
第4期2015年2月No.4February,2015
无线互联科技
Wireless Internet Technology
多个单元格块,也可能不是连续的,甚至单元格一组在多个页中单元格的选择。5.Cells、Range、Rows、Columns对象,分别表示Excel工作表中的单元格对象集、区域对象、行对象集、列对象集[4]。
3 实例
3.1通过随机函数R n d,生成学生成绩单,保存在Excel中。
首先打开Visual Basic 6.0,标准EXE,保存名为工程名为随机产生学生成绩单,窗体名为随机,然后菜单“工程”中“引用”Microsoft Excel 12.0 object library 后,在随机窗体上添加2个命令按钮,将命令按钮的Caption属性分别设为“Rnd生成成绩单并保存到Excel 中”和“释放变量并关闭Excel”。主要代码如下:命令按钮1的单击事件的代码如下:
Set xbk = xlsl.Workbooks.Add '启动Excel 后,将创建的新工作薄赋给xbk变量
Set xst = xbk.Worksheets(1) '将工作薄中第一个工作表赋给xst
xlsl.Visible = True '将Excel窗口设为可见
xlsl.WindowState = xlMinimized '将Excel窗口设为最小化
xst.Cells(1, 1) = "学号"
xst.Cells(1, 2) = "语文"
xst.Cells(1, 3) = "英语"
xst.Cells(1, 4) = "计算机应用基础"
xst.Cells(1, 5) = "平均成绩"
For k = 2 To 10
xst.Cells(k, 1) = "'201400" & 1000 + k '生成学号
S= 0
For m = 2 To 4
xst.Cells(k,m) = Int(Rnd() * 51) + 50 '产生成绩范围50~100
S = S + xst.Cells(k, m)
Next m
xst.Cells(k, 5) = Round(S / 3, 2)
Next k
End Sub
命令按钮2的单击事件的主要代码如下:
xbk.SaveAs("c:\tempp.xls") xlsl.Quit '以指定文件名存盘并退出
将对象变量释放的代码如下:Set xlsl = Nothing 、Set xbk = Nothing、
Set xst = Nothing
执行完上述程序后,得到的tempp.xls文件,如图1所示。
3.2 将3.1例生成的文件打开并执行各种排版操作
在窗体上添加2个命令按钮cnd1和cnd2,分别为“打开Excel并排版”和“保存并关闭”,并通过“工程”菜单“引用”Excel对象库后,录入以下代码(为主要的代码):Private Sub Cnd1_Click()
Set xbk = xlsl.Workbooks.Open("c:\tempp. xls") '打开C盘下Excel文件
Set xst = xbk.Worksheets(1)
xlsl.Visible = True
xlsl.WindowState = xlMinimized '让Excel 窗口最小化
For k = 1 To 5
With xst.Columns(k) '对各列样式进行设置
.AutoFit '最适合列宽
.HorizontalAlignment = xlCenter '水平方向居中
.VerticalAlignment = xlCenter '垂直方向居中
End With
Next k
xst.Rows(1).Insert '在原表第1行前插入一行
xst.Cells(1, 1) = "电大13级1班学生成绩单" '写入表标题
xst.Range("a1:e1").Merge '合并单元格区域
xst.Range("1:1").RowHeight = 45 '设置第1行行高为45磅
xst.Range("2:11").RowHeight = 28 '设置第2到11行行高为28磅
With xst.Cells(1, 1) '
设
图1 tempp.xls文件
置表标题字体及字号
.Font.Name = "黑体"
vba做excel窗体录入教程.Font.Size = 28
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
End With
With Range("A2:E11") '对A2到E11区域设置表格线
.Borders(xlEdgeLeft).LineStyle = xlContinuous '左边线
.Borders(xlEdgeTop).LineStyle = xlContinuous '顶边线
.
Borders(xlEdgeBottom).LineStyle = xlContinuous '底边线
.Borders(xlEdgeRight).LineStyle = xlContinuous '右边线
.Borders(xlInsideVertical).LineStyle = xlContinuous '内部垂直线
.Borders(xlInsideHorizontal).LineStyle = xlContinuous '内部水平线
End With
End Sub
“保存并关闭”按钮代码省略。执行完上述程序后,得到的tempp.xls文件,
如图2所示。
图2 tempp.xls文件
4 结语
文章通过实例讲解了VB与Excel的数据交换的应用。
并已执行成功。通过对VB界面的简单的操作就能操作
Excel,是非常方便的。那么在讲解VB这门的课的时候,在
上课之前就可以把这个程序拿出来,先让学生看看VB这个
软件的强大功能,可以吸引学生学习的兴趣,调动学生学习
的积极性。
[参考文献]
[1]王浩.Visual Basic从入门到精通[M].2版.北京:化学工业出版社,2011.
[2]Excel Home.Excel 2007 VBA实战技巧精粹[M].北京:人民邮电出版社,2013.
[3]宋翔.Excel VBA完全自学手册[M].北京:化学工业出版社,2013.
[4]刘东.VB控制EXCEL生成报表[J].宜宾学院学报,2005(12):73-75.
Through the Application of VB Operation Excel
JIANG Xin
(Yingkou Professional Technology Institute,Yingkou 115000,China)
Abstract:This paper introduces the save to a Excel worksheet examples through a group of student achievement data VB generated randomly, the operation of the corresponding to the Excel, and then the realization of calls in Excel VBA command will just generated file open and perform various typesetting operation.
Key words:Visul Basic;Excel;Layout
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论