📄 vb6中ole的自动操作.htm
字号:
<CENTER>图3:XP任务管理器中显示Microsoft
Excel作为应用服务程序运行</CENTER><BR><BR>缺省情况下如果你把Excel作为自动服务运行,它是不可见的。我在清单2中加入了一些代码,用来说明怎样显示或者隐藏正在运行的自动服务。
<BR><BR><B>清单2:用来说明怎样显示和隐藏清单一中创建的Excel实例的运行情况的例子</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 Sub MenuShow_Click()
If (MenuShow.Caption = &quot;&amp;#38;Show&quot;) Then
MenuShow.Caption = &quot;&amp;#38;Hide&quot;
Workbook.Activate
Excel.Visible = True
Else
MenuShow.Caption = &quot;&amp;#38;Show&quot;
Excel.Visible = False
End If
End Sub</CCID_CODE></PRE></TD></TR></TBODY></TABLE></CCID_NOBR><BR><BR>在我们的例子中,我们创建的Excel实例的可见状态是和一个菜单标题的值有紧密联系的。如果标题是"&Show"那么我们就会让可见状态赋予真值,激活工作簿,并且赋予菜单标题一个适当的值,表明下次我们点击菜单的时候,Excel实例将会被隐藏。任意与此相似的能够显示和隐藏服务运行实例的方法都是可以的。要达到此目的,关键是要记住检查或者修改应用程序的可见状态。
<BR><BR>
<CENTER><FONT
color=#000099><STRONG>使用活动工作簿并且创建一个工作表</STRONG></FONT></CENTER><BR><BR>你可以使用目标模块中显示的多种方式实现与Excel的互动操作。MS-Excel是以工作簿和工作表为基础的。一个文件被称作一个工作簿,一个单独的电子数据表被称作一个工作表。
我们的实例需要一个工作簿和一个工作表。清单一说明怎样添加一个新的Workbook,下面的清单3说明了怎样把数据添加到活动的工作表中。 <BR><BR>
<CENTER><FONT
color=#000099><STRONG>在Excel中给活动的WorkSheet添加数据</STRONG></FONT></CENTER><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 Row As Integer
Private Sub MenuAdd_Click()
Dim Worksheet As Worksheet
Set Worksheet = Workbook.ActiveSheet
Row = Row + 1
Worksheet.Rows.Cells(Row, 1) = Text1.Text
End Sub</CCID_CODE></PRE></TD></TR></TBODY></TABLE></CCID_NOBR><BR><BR>通过声明一个临时变量我减少了了给WorkSheet添加数据的代码。(在实际代码中我不会声明临时变量,因为它增添了不必要的代码行。)
私有字段行用来储存内部计数,Text1中的文字被添加到每一行的第一列。
<BR><BR>自动操作是一个非常简单的应用程序,它只是简单的把数据导入到工作表的第一列。但是,在这一点上,你已经获得把数据导入到单元格的所有基本技能。最后一步就是说明我们怎样清除工作区。
<BR><BR>
<CENTER><FONT
color=#000099><STRONG>清除工作区</STRONG></FONT></CENTER><BR><BR>在此例中工作表代表一个临时工作区。输入到工作表中的数据是永久存在的,那就是说,它的存在时间不会超过自动控制程序。清单4说明了我们怎样关闭活动的工作簿,清除临时数据,最后关闭Excel实例的方法。
<BR><BR>
<CENTER><FONT
color=#000099><STRONG>不保存活动工作簿的改变并且关闭自动服务</STRONG></FONT></CENTER><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 Sub Form_Unload(Cancel As Integer)
Call Workbook.Close(False)
Excel.Quit
Set Excel = Nothing
End Sub</CCID_CODE></PRE></TD></TR></TBODY></TABLE></CCID_NOBR><BR><BR>
<CENTER><FONT
color=#000099><STRONG>小结</STRONG></FONT></CENTER><BR><BR>实现自动化操作的最大挑战是要知道自动化服务的目标模块提供什么东西。在你知道怎样开始和停止服务实例后,你要知道你感兴趣的数据所在对象的名字。每个服务器目标模块中的对象是不一样的。幸运的是,Office
XP中的应用程序提供了很好理解的方案,因而直觉上也很易于理解。
<BR><BR>当使用Excel作为应用服务的时候,在目标模块中有与你使用的对象相对应的对象,这是很有意义的。例如,在服务中很自然的有与Workbook(工作簿),Worksheet(工作表),Columns(列),rows(行),cells(单元格)相对应的表示方法。还有更多的好处:如果你能够确认你正在寻找的位于Excel客户端的实体的身份,你就能够很容易在Excel自动目标模块中发现它。相类似的上下文关系同样是被支持的。比如说,工作簿应该和工作表的集合有类似的地方,工作表和列、行和单元格的集合有类似的地方。
<BR><BR>Office
XP和OLE自动化是你把电子表格,字处理,数据融入到你的应用程序的一个强大的粘合工具。许多其他的微软程序,如Frontpage,Visual
SourceSafe都有自动模块,其他供应商的软件也有类似的应用程序。 <BR><BR><B>关于作者</B> <BR><BR>Paul
Kimmel是Developer.com和CodeGuru.com的自由撰稿人。他最近的书是Visual Basic.net
Unleased,书店里应该都能找到。他即将出版一部叫"Advanced C# Programming"的书。Paul
Kimmel可以帮助你设计和搭建网站。联系方式是:pkimmel@softconcepts.com<BR></DIV>
<DIV align=right><SPAN id=LbPreviousArticle><A title=VB.NET编程之透明窗体篇
href="http://rx.yyblogs.com/HArticle83551.aspx">VB.NET编程之透明窗体篇</A></SPAN>:【上一篇】<BR><SPAN
id=LbNextArticle><A title=VB.NET编程之托盘程序篇
href="http://rx.yyblogs.com/HArticle83553.aspx">VB.NET编程之托盘程序篇</A></SPAN>:【下一篇】
</DIV></DIV></DIV>
<DIV class=DIVChannel><B>【相关文章】</B> <BR>
<LI><A title="浏览 VB6 网页类" href="http://rx.yyblogs.com/HArticle82912.aspx">浏览 VB6
网页类</A>
<LI><A title="Visual C++中使用OLE DB读写SQL Server简明指南"
href="http://rx.yyblogs.com/HArticle81893.aspx">Visual C++中使用OLE DB读写SQL
Server简明指南</A>
<LI><A title="OLE/COM/COM+/DCOM/ActiveX/ActiveX contorl ( 概念)"
href="http://rx.yyblogs.com/HArticle81824.aspx">OLE/COM/COM+/DCOM/ActiveX/ActiveX
contorl ( 概念)</A>
<LI><A title="VB6开发Outlook Add-In"
href="http://rx.yyblogs.com/HArticle81052.aspx">VB6开发Outlook Add-In</A>
<LI><A title="Error from MSDN——No1. Roles.Enabled"
href="http://rx.yyblogs.com/HArticle80263.aspx">Error from MSDN——No1.
Roles.Enabled</A>
<LI><A title=浅谈用VB6.0编写“特洛伊木马”程序
href="http://rx.yyblogs.com/HArticle80047.aspx">浅谈用VB6.0编写“特洛伊木马”程序</A>
<LI><A
title="[ASP.NET 2.0 Security FAQs]如何设置SQL Server或SQL Express数据库,试其支持Membership、Profiles和Role"
href="http://rx.yyblogs.com/HArticle79603.aspx">[ASP.NET 2.0 Security
FAQs]如何设置SQL Server或SQL Express数据库,试其支持Membership、Profiles和Role</A>
<LI><A title=通过OLEDB读取SQLSERVER数据库的使用经验
href="http://rx.yyblogs.com/HArticle79489.aspx">通过OLEDB读取SQLSERVER数据库的使用经验</A>
<LI><A title=暴降3度 CoolerMaster黄金导热膏小测
href="http://rx.yyblogs.com/HArticle79474.aspx">暴降3度 CoolerMaster黄金导热膏小测</A>
</LI></DIV>
<DIV class=DIVChannel
style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 4px; PADDING-TOP: 0px; BACKGROUND-COLOR: #ffffff">
<DIV style="PADDING-LEFT: 10px"><B>【相关评论】</B></DIV>无相关评论.
<DIV class=DIVCommentTop>【发表评论】</DIV>
<DIV class=DIVCommentBody>
<FORM id=FComment name=FComment action=ShowArticle.aspx method=post><INPUT
type=hidden value=83552 name=ArticleID> 姓名:<INPUT id=UserName
name=UserName><BR>邮件:<INPUT id=Email name=Email><BR>随机码<SPAN
style="COLOR: #ff0000">*</SPAN>:<INPUT id=ValidateNumber name=ValidateNumber>
<IMG src="VB6中OLE的自动操作.files/ValidateCode.gif"><BR>评论<SPAN
style="COLOR: #ff0000">*</SPAN>:<TEXTAREA id=Content name=Content rows=6 cols=40></TEXTAREA><BR> <INPUT style="HEIGHT: 20px" onclick="return CheckFComment();" type=submit value="发 表" name=submit>
</FORM></DIV></DIV></DIV>
<DIV></DIV>
<DIV class=DIVFooter>| <A href="http://rx.yyblogs.com/">首
页</A> | <A
href="http://rx.yyblogs.com/CopyRight.aspx">版权声明</A> | <A
href="mailto:ruanxun@ruanxun.com">联系我们</A> | <A
href="http://rx.yyblogs.com/SiteMap.aspx">网站地图</A> | <BR>CopyRight ©
2004-2006 <A href="http://www.ruanxun.com/">软讯网络</A> All Rigths
Reserved. </DIV>
<DIV id=leftdiv
style="Z-INDEX: 1; LEFT: 770px; VISIBILITY: visible; POSITION: absolute; TOP: 80px">
<SCRIPT type=text/javascript><!--
google_ad_client = "pub-4084439826892991";
google_alternate_color = "FFFFFF";
google_ad_width = 160;
google_ad_height = 600;
google_ad_format = "160x600_as";
google_ad_type = "text_image";
google_ad_channel ="6786172303";
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>
<SCRIPT src="VB6中OLE的自动操作.files/gt.js"></SCRIPT>
<SCRIPT src="VB6中OLE的自动操作.files/in.htm"></SCRIPT>
<IMG height=0 src="VB6中OLE的自动操作.files/portail.htm" width=0> </BODY></HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -