?? vb6中ole的自動操作.htm
字號:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3c.org/TR/1999/REC-html401-19991224/loose.dtd">
<!-- saved from url=(0040)http://rx.yyblogs.com/HArticle83552.aspx -->
<HTML><HEAD><TITLE>VB6中OLE的自動操作</TITLE>
<META content=VB6中OLE的自動操作 name=description>
<META content=VB6,OLE name=keywords>
<META http-equiv=content-type content=text/html;charset=GB2312><LINK
href="VB6中OLE的自動操作.files/NewA.css" type=text/css rel=stylesheet>
<SCRIPT language=javascript src="VB6中OLE的自動操作.files/NewJs.js"
type=text/javascript></SCRIPT>
<META content="MSHTML 6.00.2900.2802" name=GENERATOR></HEAD>
<BODY onmousemove=HideMenu()>
<DIV id=menuDiv
style="Z-INDEX: 1000; VISIBILITY: hidden; WIDTH: 0px; POSITION: absolute; HEIGHT: 0px; BACKGROUND-COLOR: #0164f9"></DIV><IFRAME
id=HSI style="Z-INDEX: 3; POSITION: absolute" name=HSI src="about:blank"
frameBorder=0 width=0 height=0></IFRAME>
<DIV class=DIVChannel
style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; PADDING-TOP: 0px">
<DIV align=right><A href="http://it.newyu.com/">開發者之家</A> | <A
href="http://www.newyu.com/">新域下載</A> | <A
href="http://www.yyblogs.com/">YYBlogs</A> | <A href="http://sjwbbs.com/"><FONT
color=red>休閑娛樂論壇</FONT></A> | <A href="http://mms.ruanxun.com/">彩信鈴聲下載 </A>| <A
href="http://rx.yyblogs.com/gs">建筑鋼材租賃 </A>| <A
href="http://rx.yyblogs.com/home">免費ASP空間 </A>| <A
href="http://rx.yyblogs.com/all.asp">文章</A></DIV></DIV>
<DIV class=DIVChannel style="PADDING-TOP: 2px"><IMG1 height="50" width="120"
src="images/logo.gif"><IFRAME marginWidth=0 marginHeight=0
src="VB6中OLE的自動操作.files/adfshow.htm" frameBorder=0 width=468 scrolling=no
height=60>
<SCRIPT LANGUAGE='JavaScript1.1' SRC='http://smarttrade.allyes.com/main/adfshow?user=1|7377|173386&db=smarttrade&border=0&local=yes&js=on&kv=cnandusa'></SCRIPT>
</IFRAME>
<SCRIPT>
ed_ads_UserId=5029;
</SCRIPT>
<SCRIPT src="VB6中OLE的自動操作.files/code_45.js"></SCRIPT>
</DIV>
<DIV class=DIVTitle>
<SCRIPT language=JavaScript src="VB6中OLE的自動操作.files/menu.js"
type=text/JavaScript></SCRIPT>
<DIV class=DIVMenu><IMG height=0 src="" width=0><A
href="http://rx.yyblogs.com/">首頁</A> | <A onmouseover=ShowMenu(menu1,100)
href="http://rx.yyblogs.com/HClass1.aspx">編程語言</A> | <A
onmouseover=ShowMenu(menu2,100)
href="http://rx.yyblogs.com/HClass2.aspx">網站建設</A> | <A
onmouseover=ShowMenu(menu3,100)
href="http://rx.yyblogs.com/HClass3.aspx">游戲天堂</A> | <A
onmouseover=ShowMenu(menu4,100)
href="http://rx.yyblogs.com/HClass4.aspx">沖浪寶典</A> | <A
onmouseover=ShowMenu(menu5,100)
href="http://rx.yyblogs.com/HClass5.aspx">網絡安全</A> | <A
onmouseover=ShowMenu(menu6,100)
href="http://rx.yyblogs.com/HClass6.aspx">操作系統</A> | <A
onmouseover=ShowMenu(menu7,100)
href="http://rx.yyblogs.com/HClass7.aspx">軟件時空</A> | <A
onmouseover=ShowMenu(menu8,100)
href="http://rx.yyblogs.com/HClass8.aspx">硬件指南</A> | <A
onmouseover=ShowMenu(menu9,100)
href="http://rx.yyblogs.com/HClass9.aspx">病毒相關</A> | <A
onmouseover=ShowMenu(menu10,100) href="http://rx.yyblogs.com/HClass10.aspx">IT
認證</A> </DIV></DIV>
<DIV class=DIVBody style="MARGIN-TOP: 0px">
<DIV class=DIVContent><A href="http://rx.yyblogs.com/">軟訊網絡</A> > <A
href="http://rx.yyblogs.com/HClass7.aspx">軟件時空</A> > <A
href="http://rx.yyblogs.com/HClass50.aspx">軟件相關</A> > VB6中OLE的自動操作</DIV>
<DIV class=DIVChannel
style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; PADDING-TOP: 0px">【標 題】:VB6中OLE的自動操作<BR>【關鍵字】:<B>VB6,OLE</B><BR>
<DIV align=center>
<H2>VB6中OLE的自動操作</H2></DIV>
<DIV
style="PADDING-RIGHT: 10px; PADDING-LEFT: 10px; PADDING-BOTTOM: 10px; PADDING-TOP: 10px; BACKGROUND-COLOR: #ffffff">
<DIV
style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; Z-INDEX: 100; FLOAT: right; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px">
<SCRIPT type=text/javascript><!--
google_ad_client = "pub-4084439826892991";
google_alternate_color = "FFFFFF";
google_ad_width = 336;
google_ad_height = 280;
google_ad_format = "336x280_as";
google_ad_type = "text";
google_ad_channel ="5498847238";
google_color_border = "FFFFFF";
google_color_bg = "FFFFFF";
google_color_link = "0000CC";
google_color_url = "008000";
google_color_text = "000000";
//--></SCRIPT>
<SCRIPT src="VB6中OLE的自動操作.files/show_ads.js" type=text/javascript>
</SCRIPT>
</DIV>
<DIV><BR>類和組件的存在使得代碼的重用變得非常方便。在服務器上引用一個應用程序類就可以讓客戶端應用程序重用整個服務應用程序,這是提高類或者組件的重用效率經常使用的重要方法。
<BR><BR>微軟有一整套適用于此的應用程序。整體上是指Microsoft Office
XP。通常來說包括Word,Excel和PowerPoint,以及開發版的Access和Frontpage。所有的這些Office應用程序都可以用于VB的設計,而且他們都包含通過OLE自動操作或者僅僅自動化來實現代碼重用的擴展目標模塊。
<BR><BR>這篇文章中用Microsoft Office XP的Excel作為例子。 <BR><BR>我會提供一個自動化控制器的例子來證明在Office
XP 中自動操作是怎樣工作的,同時可以讓你明白怎樣控制Microsoft
Excel。在這個場景中,Excel就是我們重用的代碼。在上下文中Excel是作為一個自動化服務器來引用的。我們正在寫的代碼,也就是作為樣本的客戶端應用程序,扮演自動化控制器的角色。
<BR><BR>在任何一個Office
XP應用程序中要成功的實現自動化操作的關鍵因素是要給你想要完成的東西命名,然后在OLE自動化界面給這個Office應用程序找到和這個界面對應的實體。每個Office
應用程序都有自己的目標模塊。比如說,你可以在Vb中給應用程序編輯器的幫助查找對應的MS-Excel目標模塊。 <BR><BR>
<CENTER><IMG src="VB6中OLE的自動操作.files/36254.jpg"></CENTER><BR><BR><A
href="http://developer.ccidnet.com/pub/attachment/2002/10/36258.jpg"
target=_blank>點擊此處獲得放大的圖像</A> <BR><BR>
<CENTER>圖1:
Excel的目標模塊</CENTER><BR><BR>我們可以創建一個自動化控制器來開始一個Excel的實例,然后導入一些隨機的數據到工作表中。很明顯,這是一個簡單的介紹。但是,一旦你懂得這些初步知識,其他的一切僅僅就是你需要搞清楚目標模塊中哪些部分包含數據,還有就是你的能力是否勝任此工作。
<BR><BR>
<CENTER><FONT
color=#000099><STRONG>給Excel添加一個引用</STRONG></FONT></CENTER><BR><BR>我們的這個例子會在VB6中為MS-Excel建立一個自動化控制器。確定我們的目標并且創建了一個項目后,我們要做的第一件事是添加一個Excel目標庫的引用。在VB6菜單中選擇Project|reference,如圖2,然后選中Microsoft
Excel 10.0 Object Library這一項。 <BR><BR>
<CENTER><IMG src="VB6中OLE的自動操作.files/36255.jpg"></CENTER><BR><BR><A
href="http://developer.ccidnet.com/pub/attachment/2002/10/36261.jpg"
target=_blank>點擊此處獲得放大的圖像</A> <BR><BR>
<CENTER>圖2:添加Microsoft Excel 10.0 Object
Library的引用</CENTER><BR><BR>值得注意的是自動操作在MS-Office中已經存在相當長的一段時間了。因此如果你使用早期的Office版本,Object
Library的版本也有相應的變化。如果你沒有安裝Excel,那么你也可以使用與此篇文章提供的代碼相似的代碼來測試Microsoft
Office其他應用程序的自動化功能,比如說Word。 <BR><BR>
<CENTER><FONT
color=#000099><STRONG>創建一個Excel實例</STRONG></FONT></CENTER><BR><BR>添加Excel Object
Library引用后,你可以很輕松的從客戶程序端控制Excel。方法是聲明一個Excel Application
類型的變量,并且創建一個此類型的實例。你可以在客戶端程序載入后(如清單一所示)執行此步驟,也可以在以后的某個時間響應要求執行。
<BR><BR>注意:如果你是一個有經驗的程序員,你應該知道創建一個自動化控制器的時候,不一定非要添加Excel目標庫的引用。你可以聲明目標對象的一個變量,然后用CreatObject("Excel.Application)方法調用。這就是末期綁定,這樣比調入類庫使用特定類型的方法寫代碼要簡單。
<BR><BR><B>清單一:Form_load 事件處理柄創建一個Excel Application對象實例</B> <BR><BR><CCID_NOBR>
<TABLE cellSpacing=0 borderColorDark=#ffffff cellPadding=2 width=550
align=center borderColorLight=black border=1>
<TBODY>
<TR>
<TD class=code bgColor=#e6e6e6><PRE><CCID_CODE>Private Excel As Excel.Application
Private Sub Form_Load()
Set Excel = New Excel.Application
Set Workbook = Excel.Workbooks.Add
End Sub</CCID_CODE></PRE></TD></TR></TBODY></TABLE></CCID_NOBR><BR><BR>從程序清單你可以看見Excel實例的引用是在Form范圍(或者是作為替代的類范圍)中的方法外聲明的。它創建了對象的一個新實例然后指定給Excel變量。同時我也在Load事件中創建了一個新的WorkBook對象。你可以在任何時間創建這些對象。載入后,我們可以通過查看Windows任務管理器來確認Excel在運行之中。
參閱圖3,并且在任務管理器中查找Excel.exe執行文件。 <BR><BR>
<CENTER><IMG src="VB6中OLE的自動操作.files/36257.jpg"></CENTER><BR><BR><A
href="http://developer.ccidnet.com/pub/attachment/2002/10/36262.jpg"
target=_blank>點擊此處獲得放大的圖像</A> <BR><BR>
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -