用VB5直接控制Excel 97 作者:馮宗文 用VB5可編寫直接控制Excel操作的程序,方法是用VB的OLE自動化 技術(shù)獲取Excel 97 的控制句柄,從而直接控制Excel 97的一系列操作 ,
用VB5直接控制Excel 97VB
。與用VBA語言編寫的Excel控制程序相比,兩者主要有如下差異: 1. 實現(xiàn)VB5對Excel的直接控制后
用VB5直接控制Excel 97
作者:馮宗文
用VB5可編寫直接控制Excel操作的程序,方法是用VB的OLE自動化 技術(shù)獲取Excel 97 的控制句柄,從而直接控制Excel 97的一系列操作 。與用VBA語言編寫的Excel控制程序相比,兩者主要有如下差異:
1. 實現(xiàn)VB5對Excel的直接控制后,可在用戶所編的程序中調(diào)用Ex cel,即從控制界面直接調(diào)入Excel,且退出Excel后又回到控制界面,使 人看起來就如Excel是依附于用戶程序上。這給既想獲取Excel的強大 支持,又想編寫"傻瓜"軟件交給不熟悉計算機的用戶使用的程序員來 說,其好處是不言而喻的。VBA則必須依附于特定的Excel環(huán)境,且只有 先進入確定的Excel環(huán)境后,才能運行VBA程序。
2. 用VB5實現(xiàn)Excel的控制后,所有程序可編譯成完整的EXE執(zhí)行 文件,直接在Win 95 /NT平臺上執(zhí)行,運行環(huán)境更為簡潔明了,程序更 易加密。不會因為有多個程序指令塊帶來管理麻煩,也不易因用戶的 不小心使用而出現(xiàn)程序丟失,造成功能短缺。VBA編寫的程序最大的不 方便是不能編譯成執(zhí)行文件,不能脫離其主應用程序獨立運行。
3. VBA在Excel環(huán)境中,幾乎是一個萬能的工具,可通過建立功能 強大的宏指令來擴展或模擬Excel的全部功能。而VB的OLE自動技術(shù)目 前還不能實現(xiàn)Excel所有功能的模擬與控制。
操作步驟
用VB5控制Excel 97的操作步驟如下:
1. 引用Microsoft Excel類型庫:
*從"工程"菜單中選擇"引用"欄;
*選擇Microsoft Excel 8.0 Object Library;
*選擇"確定"。
2. 聲明顯式數(shù)據(jù)類型:
Dim x1 as Excel.Application
3. 創(chuàng)建新實例,獲取Excel的控制句柄:
Set x1=CreatObject("Excel.Application")
4. 由于Excel 97啟動為不可見,調(diào)用后需使其顯示出來:
x1.Visible=True
5. 交還Excel控制句柄:
Set x1=Nothing
同理,用此方法也可直接控制Word、Aclearcase/" target="_blank" >ccess等Microsoft Office 97的其他應用軟件,享受其便利和支持。
操作程序
Private Sub Contral_Excel_97()
{
Dim x1 as Excel.Application 注釋:聲明顯式數(shù)據(jù)類型
Set x1=CreateObject("Excel.Application")
注釋:創(chuàng)建新實例
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
’圖形數(shù)據(jù)來源
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
’交還控制句柄
原文轉(zhuǎn)自:http://www.ltesting.net