📄 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 + -