用VB5直接控制Excel97
2006-02-27 11:42:56 来源:WEB开发网核心提示:用VB5可编写直接控制Excel操作的程序,方法是用VB的OLE自动化技术获取Excel97的控制句柄,从而直接控制Excel97的一系列操作,与用VBA语言编写的Excel控制程序相比,两者主要有如下差异:1.实现VB5对Excel的直接控制后,可在用户所编的程序中调用Excel,即从控制界面直接调入Excel,且退
用VB5可编写直接控制Excel操作的程序,方法是用VB的OLE自动化技术获取Excel97的控制句柄,从而直接控制Excel97的一系列操作。与用VBA语言编写的Excel控制程序相比,两者主要有如下差异:
1.实现VB5对Excel的直接控制后,可在用户所编的程序中调用Excel,即从控制界面直接调入Excel,且退出Excel后又回到控制界面,使人看起来就如Excel是依附于用户程序上。这给既想获取Excel的强大支持,又想编写"傻瓜"软件交给不熟悉计算机的用户使用的程序员来说,其好处是不言而喻的。VBA则必须依附于特定的Excel环境,且只有先进入确定的Excel环境后,才能运行VBA程序。
2.用VB5实现Excel的控制后,所有程序可编译成完整的EXE执行文件,直接在Win95/NT平台上执行,运行环境更为简洁明了,程序更易加密。不会因为有多个程序指令块带来管理麻烦,也不易因用户的不小心使用而出现程序丢失,造成功能短缺。VBA编写的程序最大的不方便是不能编译成执行文件,不能脱离其主应用程序独立运行。
3.VBA在Excel环境中,几乎是一个万能的工具,可通过建立功能强大的宏指令来扩展或模拟Excel的全部功能。而VB的OLE自动技术目前还不能实现Excel所有功能的模拟与控制。
操作步骤
用VB5控制Excel97的操作步骤如下:
1.引用MicrosoftExcel类型库:
*从"工程"菜单中选择"引用"栏;
*选择MicrosoftExcel8.0ObjectLibrary;
*选择"确定"。
2.声明显式数据类型:
Dimx1asExcel.application
3.创建新实例,获取Excel的控制句柄:
Setx1=CreatObject("Excel.Application")
4.由于Excel97启动为不可见,调用后需使其显示出来:
x1.Visible=True
5.交还Excel控制句柄:
Setx1=Nothing
同理,用此方法也可直接控制Word、access等MicrosoftOffice97的其他应用软件,享受其便利和支持。
操作程序
PRivateSubContral_Excel_97()
{
Dimx1asExcel.Application'声明显式数据类型
Setx1=CreateObject("Excel.Application")
'创建新实例
x1.Workbooks.Add
'添加新工作簿
x1.Range("A1").Value=5 'A1格赋值
x1.Range("A2").Value=8 'A2格赋值
x1.Range("A3").Value=16'A3格赋值
x1.Range("A4").Value=7 'A4格赋值
x1.Charts.Add
'插入图形
x1.ActiveChart.ChartType=x1ColumnClustered
'柱状图
x1.ActiveChart.SetSourceDataSource:=x1.Sheets("Sheet1").Range("A1:A4")
PlotBy:=x1Columns
'图形数据来源
Withx1.ActiveChart
'图标题
.HasTitle=False '没有总标题
.Axes(x1Category,x1Primary).HasTitle=False
.Axes(x1Value,x1Primary).HasTitle=True
'有Y轴标题
.Axes(x1Value,x1Primary).AxisTitle.Characters
.Text="销售电视机(台)"
EndWith
Withx1.ActiveChart.PageSetup'图形页面设置
.CenterHeader="&28"&ListSTNM(Combo2.ListIndex)&"逐日电视机销售"
'标题
.CenterFooter="&12xxx商场" '下边落款
.RightFooter=Format(Now,"yyyy-m-d-h:n")
'右下角显示时间
.Orientation=x1Landscape '打印纸页面横向
EndWith
x1.ActiveChart.PlotArea.Interior.ColorIndex=x1None
'无背景色
x1.ActiveWindow.SelectedSheets.PrintPreview
'打印预览
x1.Visible=True
'显示图形
Setx1=Nothing
'交还控制句柄->
1.实现VB5对Excel的直接控制后,可在用户所编的程序中调用Excel,即从控制界面直接调入Excel,且退出Excel后又回到控制界面,使人看起来就如Excel是依附于用户程序上。这给既想获取Excel的强大支持,又想编写"傻瓜"软件交给不熟悉计算机的用户使用的程序员来说,其好处是不言而喻的。VBA则必须依附于特定的Excel环境,且只有先进入确定的Excel环境后,才能运行VBA程序。
2.用VB5实现Excel的控制后,所有程序可编译成完整的EXE执行文件,直接在Win95/NT平台上执行,运行环境更为简洁明了,程序更易加密。不会因为有多个程序指令块带来管理麻烦,也不易因用户的不小心使用而出现程序丢失,造成功能短缺。VBA编写的程序最大的不方便是不能编译成执行文件,不能脱离其主应用程序独立运行。
3.VBA在Excel环境中,几乎是一个万能的工具,可通过建立功能强大的宏指令来扩展或模拟Excel的全部功能。而VB的OLE自动技术目前还不能实现Excel所有功能的模拟与控制。
操作步骤
用VB5控制Excel97的操作步骤如下:
1.引用MicrosoftExcel类型库:
*从"工程"菜单中选择"引用"栏;
*选择MicrosoftExcel8.0ObjectLibrary;
*选择"确定"。
2.声明显式数据类型:
Dimx1asExcel.application
3.创建新实例,获取Excel的控制句柄:
Setx1=CreatObject("Excel.Application")
4.由于Excel97启动为不可见,调用后需使其显示出来:
x1.Visible=True
5.交还Excel控制句柄:
Setx1=Nothing
同理,用此方法也可直接控制Word、access等MicrosoftOffice97的其他应用软件,享受其便利和支持。
操作程序
PRivateSubContral_Excel_97()
{
Dimx1asExcel.Application'声明显式数据类型
Setx1=CreateObject("Excel.Application")
'创建新实例
x1.Workbooks.Add
'添加新工作簿
x1.Range("A1").Value=5 'A1格赋值
x1.Range("A2").Value=8 'A2格赋值
x1.Range("A3").Value=16'A3格赋值
x1.Range("A4").Value=7 'A4格赋值
x1.Charts.Add
'插入图形
x1.ActiveChart.ChartType=x1ColumnClustered
'柱状图
x1.ActiveChart.SetSourceDataSource:=x1.Sheets("Sheet1").Range("A1:A4")
PlotBy:=x1Columns
'图形数据来源
Withx1.ActiveChart
'图标题
.HasTitle=False '没有总标题
.Axes(x1Category,x1Primary).HasTitle=False
.Axes(x1Value,x1Primary).HasTitle=True
'有Y轴标题
.Axes(x1Value,x1Primary).AxisTitle.Characters
.Text="销售电视机(台)"
EndWith
Withx1.ActiveChart.PageSetup'图形页面设置
.CenterHeader="&28"&ListSTNM(Combo2.ListIndex)&"逐日电视机销售"
'标题
.CenterFooter="&12xxx商场" '下边落款
.RightFooter=Format(Now,"yyyy-m-d-h:n")
'右下角显示时间
.Orientation=x1Landscape '打印纸页面横向
EndWith
x1.ActiveChart.PlotArea.Interior.ColorIndex=x1None
'无背景色
x1.ActiveWindow.SelectedSheets.PrintPreview
'打印预览
x1.Visible=True
'显示图形
Setx1=Nothing
'交还控制句柄->
[]
更多精彩
赞助商链接