友情提示:如果本网页打开太慢或显示不完整,请尝试鼠标右键“刷新”本网页!阅读过程发现任何错误请告诉我们,谢谢!! 报告错误
飞读中文网 返回本书目录 我的书架 我的书签 TXT全本下载 进入书吧 加入书签

excel_vba_编程教程(完整版)-第66章

按键盘上方向键 ← 或 → 可快速上下翻页,按键盘上的 Enter 键可回到本书目录页,按键盘上方向键 ↑ 可回到本页顶部!
————未阅读完?加入书签已便下次继续阅读!



语句:  
AppActivate “Microsoft Word”  
注意,应用程序名称用双引号引用起来。你也可以使用Shell函数返回的数值作为语句AppActivate 
的参数:  
 ‘ run Microsoft Word 运行Word应用程序  
ReturnValue = Shell(〃C:Microsoft OfficeOfficeWord。exe〃;1)   
 ‘ activate Microsoft Word 激活Word  
AppActivate ReturnValue   
语句AppActivate用来在应用程序之间切换,所以要求这些程序已经在运行。该语句仅仅改变焦点, 
指定的应用程序变为当前活动的窗口。AppActivate语句不会启动任何应用程序,参见下一章节的 
过程FindCPLFiles,这也是使用该语句的一个例子。我们来练习一下最近介绍的几个VBA语句:  

                                           169 

… 页面 186…

1。 通过在立即窗口里输入下列VBA语句来打开资源管理器:  
Shell 〃Explorer〃   
按下回车键后,被请求的应用程序就被打开了,带有“我的文档”文件夹的图标就会出现在任务栏 
上。  
2。 在立即窗口里输入下列代码:  
AppActivate 〃My Documents〃   
按下回车键后,焦点就会移至我的文档窗口。  

3。控制其它应用程序  

既然你已经知道了如何使用VBA语句来启动一个程序,以及在应用程序之间切换,那么我们来看看 
一个应用程序是如何与另外一个应用程序交流的。对于一个应用程序来说,要控制另一个应用程序 
的最简单的方式就是使用SendKeys语句。该语句允许你将许多的按键发送到活动应用程序窗口,你 
可以发送一个或组合键并且得到直接使用键盘的同样效果。SendKeys语句如下所示:  
SendKeys string '; wait'   
这个必须的参数string是你要发送到活动应用程序窗口的键或组合键,例如,使用下列指令来发送 
字母“f”键:  
SendKeys 〃f〃   
要发送组合键Alt+f,使用:  
SendKeys 〃%f〃   
百分符号(%)是表示Alt键的字符串。要发送例如Shift+Tab的组合键的话,那么就要使用下面的 
语句:  
SendKeys 〃+{TAB}〃   
加号(+)表示Shift键。要发送其它键或者其它组合键的话,请参见表9…3列出的相应字符串。  
技巧9…1 SendKeys和其它应用程序  
你只能发送按键到那些为微软视窗操作系统设置的应用程序。  
技巧9…2 SendKeys和被保护的字符  
有些字符在和SendKeys语句一起使用时具有特殊的意义,它们是:加号(+),脱字符号(^),符合 
 (~)和括号()。要发送这些字符到另一个应用程序的话,就必须将它们用打括号{}括起来。要发 
送打括号时,则需要输入{{}和{}}  
SendKeys语句的第二个参数是可选的,wait是个逻辑值True或者False。如果是False(缺省),那 
么VB在发送按键后立即返回过程,如果为True,那么VB只有在发送的按键执行后才能返回到过程。  
如果要发送一个表格9…3里面没有列出的字符的话,那么记住这些代码必须用引号括起来,例如:  
SendKeys “{BACKSPACE}”   
表9…3 SendKeys语句里使用的按键代码  
键                  代码                  键                    代码  
空格键              {BACKSPACE}           滚动锁定               {SCROLLLOCK}  
                    {BS}                  Tab                   {TAB}  
                    {BKSP}                向上箭头              {UP}  
Break键             {BREAK}               F1  
大写锁定键          {CAPSLOCK}            F2                    {F2}  
删除键              {DELETE}              F3                    {F3}  
                    {DEL}                 F4                    {F4}  
向下箭头            {DOWN}                F5                    {F5}  
End键               {END}                 F6                    {F6}  
回车键              {ENTER}               F7                    {F7}  
                    ~                     F8                    {F8}  
Esc键               {ESC}                 F9                    {F9}  
帮助键              {HELP}                F10                   {F10}  
Home键              {HOME}                F11                   {F11}  
插入键              {INSERT}              F12                   {F12}  

                                           170 

… 页面 187…

                    {INS}                 F13                   {F13}  
向左箭头            {LEFT}                F14                    {F14}  
数字锁定键          {NUMLOCK}             F15                    {F15}  
向下翻页键          {PGDN}                F16                    {F16}  
向上翻页键          {PGUP}                Shift                  +  
屏幕打印键          {PRTSC}               Ctrl                   ^  
向右箭头            {RIGHT}               Alt                    %  
  
技巧9…3 SendKeys语句对格敏感  
当你使用SendKeys语句发送按键时,你一定要牢记区分字符的大小格。因此,要发送组合键Ctrl+d 
的话,你必须使用^d,而发送Ctrl+Shift+D的话,则必须使用字符串:^+d  
在本章前期,你学习了。cpl文件启动多种控制面板的图标。你现在要创建的VBA过程目的是要定位 
你硬盘上所有扩展名为。cpl的文件。  
1。 使用立即窗口来启动资源管理器:  
Shell “Explorer。”   
 “我的文档”图标将出现在屏幕下方的任务栏上。  
2。 在当前工程里插入新模块并且重命名为SendKeysStatement  
3。 输入过程FindCPLFiles,如下所示:  
Sub FindCPLFiles()   
      ' The keystrokes are for Windows 2000   
      AppActivate 〃My Documents〃   
      ' activate the Search window 激活搜索窗口  
      SendKeys 〃{F3}〃; True   
      ' move the pointer to the Search for files将光标移到搜索文件  
      ' and folders named text box 和文件夹(名称在文本框里)  
      SendKeys 〃%m〃; True   
      ' type in the search string 输入要搜索的字符串  
      SendKeys 〃*。cpl〃; True   
      ' move to the Look in drop down box 焦点移到下拉框  
      SendKeys 〃{Tab}{Tab}〃; True   
      ' change to the root directory 更改根目录  
      SendKeys 〃C:”; True   
      ' execute the Search 执行搜索  
      SendKeys 〃%s〃; True   
End Sub   
4。 切换到Excel应用程序窗口并且运行过程FindCPLFiles(使用Alt+F8打开宏对话框,选择过程名 
    称,再点击运行)。  
上面过程的第一条语句使用AppActivate语句(参见前面章节)来激活已经打开的应用程序,还记 
得你在立即窗口里使用Shell语句激活了资源管理器吗?剩余的语句发送一些必要的按键到活动应 
用程序。本过程的结果是扩展名为。cpl的控制面板文件的搜索结果列表。你也可以使用一个 
SendKeys语句来发送所有必须的按键(参见下面的例子),然而,一步一步发送按键更容易理解程 
序。  
Sub FindCPLFiles2()  
      AppActivate 〃My Documents〃   
      SendKeys 〃{F3}% m*。cpl{Tab}{Tab}C:%s〃; True   
End Sub   

4。控制应用程序的其它方法  

尽管你可以使用SendKeys语句来传递命令给其它应用程序,但是你还是必须要求助于其它方法来获 
得对该应用程序的充分控制。有两种标准方法可以供应用程序和另外一种应用程序交流。最新的方 

                                           171 

… 页面 188…

法,被称为自动控制,它允许你访问和操纵另一种应用程序的对象。你可以通过自动控制编写VBA 
过程,通过引用其它应用程序的对象、属性和方法来控制其它应用程序。在本章接下来的章节里, 
你将学习如何通过自动控制来控制其它应用程序。称为DDE(动态数据交换)的老数据交换技术是 
允许你在两个应用程序之间动态发送数据的协议,它通过创建一个特殊的通道来发送和结束信息。 
DDE非常慢,使用困难,只有当你需要与一个不支持自动控制的老应用程序交流时,才需要使用DDE。  

5。了解自动控制  

当和另外一个应用程序交流时,你可能需要更多的功能,而不只是激活它来发送按键。例如,你可 
能需要在该应用程序里创建和操纵对象,你可以在Excel电子表格力插入整个Word文档。因为Excel 
和Word都支持自动控制,所以,你可以在Excel里编写一个VBA过程在操作Word对象,比如文档或者 
段落。支持自动控制的应用程序称为自动控制服务器(Automation servers)或者自动控制对象 
 (Automation objects)。  
能够操作服务器对象的应用程序称为自动控制控件。有些应用程序只能是服务器或者控件,而其它 
的则既可以是服务器也可以是控件。Microsoft Office 2000和2002都可以作为自动控制服务器和 
控件。自动控制控件可以是安装在
返回目录 上一页 下一页 回到顶部 1 1
未阅读完?加入书签已便下次继续阅读!
温馨提示: 温看小说的同时发表评论,说出自己的看法和其它小伙伴们分享也不错哦!发表书评还可以获得积分和经验奖励,认真写原创书评 被采纳为精评可以获得大量金币、积分和经验奖励哦!