VB 版 (精华区)

发信人: zxfsnow (希望的春天), 信区: VB
标  题: 用VB5直接控制Excel 97 
发信站: 哈工大紫丁香 (2000年06月05日12:43:00 星期一), 转信

发信人: Keri (呵呵2000), 信区: VB
标  题: 用VB5直接控制Excel 97
发信站: 虎踞龙盘东南站 (Sat Jan  8 22:21:40 2000), 转信

用VB5直接控制Excel 97
杭州大学计算中心 冯宗文 浙江省水文勘测局茅程
----------------------------------------------------------------------------
----
 转载:<<计算机世界>>第四十九期
    用VB5可编写直接控制Excel操作的程序,方法是用VB的OLE自动化技术获取Excel 97

的控制句柄,从而直接控制Excel 97的一系列操作。与用VBA语言编写的Excel控制程序相

比,两者主要有如下差异:
    1. 实现VB5对Excel的直接控制后,可在用户所编的程序中调用Excel,即从控制界面

直接调入Excel,且退出Excel后又回到控制界面,使人看起来就如Excel是依附于用户程序

上。这给既想获取Excel的强大支持,又想编写"傻瓜"软件交给不熟悉计算机的用户使用

的程序员来说,其好处是不言而喻的。VBA则必须依附于特定的Excel环境,且只有先进入

确定的Excel环境后,才能运行VBA程序。
    2. 用VB5实现Excel的控制后,所有程序可编译成完整的EXE执行文件,直接在Win 95

/NT平台上执行,运行环境更为简洁明了,程序更易加密。不会因为有多个程序指令块带来

管理麻烦,也不易因用户的不小心使用而出现程序丢失,造成功能短缺。VBA编写的程序最

大的不方便是不能编译成执行文件,不能脱离其主应用程序独立运行。
    3. VBA在Excel环境中,几乎是一个万能的工具,可通过建立功能强大的宏指令来扩展

或模拟Excel的全部功能。而VB的OLE自动技术目前还不能实现Excel所有功能的模拟与控

制。
    操作步骤
    用VB5控制Excel 97的操作步骤如下:
    1. 引用Microsoft Excel类型库:
    *从"工程"菜单中选择"引用"栏;
    *选择Microsoft Excel 8.0 Object Library;
    *选择"确定"。
    2. 声明显式数据类型:
    Dim x1 as Excel.Application
    3. 创建新实例,获取Excel的控制句柄:
    Set x1=CreatObject("Excel.Application")
    4. 由于Excel 97启动为不可见,调用后需使其显示出来:
    x1.Visible=True
    5. 交还Excel控制句柄:
    Set x1=Nothing
    同理,用此方法也可直接控制Word、Access等Microsoft Office 97的其他应用软件

,享受其便利和支持。
    操作程序
    Private Sub Contral_Excel_97()
    {
    Dim x1 as Excel.Application '声明显式数据类型
    Set x1=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.SetSourceData Source:=x1.Sheets("Sheet1").Range("A1:A4")
    PlotBy:=x1Columns
    ’图形数据来源
    With x1.ActiveChart
    ’图标题
    .HasTitle=False  ’没有总标题
    .Axes(x1Category,x1Primary).HasTitle=False
    .Axes(x1Value,x1Primary).HasTitle=True
    ’有Y轴标题
    .Axes(x1Value,x1Primary).AxisTitle.Characters
    .Text="销售电视机(台)"
    End With
    With x1.ActiveChart.PageSetup ’图形页面设置
    .CenterHeader="&28" & ListSTNM(Combo2. ListIndex)&"逐日电视机销售"
    ’标题
    .CenterFooter="&12x x x 商场" ’下边落款
    .RightFooter=Format(Now,"yyyy-m-d-h:n")
    ’右下角显示时间
    .Orientation=x1Landscape  ’打印纸页面横向
    End With
    x1.ActiveChart.PlotArea.Interior.ColorIndex=x1None
    ’无背景色
    x1.ActiveWindow.SelectedSheets.PrintPreview
    ’打印预览
    x1.Visible=True
    ’显示图形
    Set x1=Nothing
    ’交还控制句柄
    }
----------------------------------------------------------------------------
----
  如果您对<<VB爱好者>>站点有任何意见或建议,请与我联系Email:coolknight@263.n
et
-- 
--

 以科计为本,以产业报国!
  超越自我,飞跃无限!
  

※ 来源:·哈工大紫丁香 bbs.hit.edu.cn·[FROM: 202.118.235.249]
[百宝箱] [返回首页] [上级目录] [根目录] [返回顶部] [刷新] [返回]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:2.536毫秒