靠谱电子书 > 经管其他电子书 > excel_vba_编程教程(完整版) >

第50部分

excel_vba_编程教程(完整版)-第50部分

小说: excel_vba_编程教程(完整版) 字数: 每页4000字

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



WshNetwork。本节示范如何利用WshShell对象来编写程序启动其它应用程序和创建快捷方式。  

31。运行其它应用程序  

在本书的下一章,你将学习多种从Excel里启动外部应用程序的方法。你可以加上即将在本节找到 
的三种方法。  
假设你想要从VBA过程里启动Windows记事本,接下来的过程,你将看到使用WSH的对象WshShell来 
运行一个应用程序是多么容易。如果你要运行内置的计算器的话,只要将记事本应用程序名称改为 
Calc就可以了。  
Sub RunNotepad()   
      Dim WshShell As Object   
      Set WshShell = CreateObject(〃WScript。Shell〃)   
      WshShell。Run 〃Notepad〃   
      Set WshShell = Nothing   
End Sub  
上面的过程以声明和创建一个Wshshell对象开始:  
Dim WshShell As Object   
Set WshShell = CreateObject(〃WScript。Shell〃)   
下一语句则使用Run方法来运行要求的应用程序:  
WshShell。Run 〃Notepad〃   
使用相同的概念,很容易运行视窗的公用应用程序,例如计算器或浏览器:  

                                          164 

… 页面 181…

WshShell。Run “Calc”   
WshShell。Run “Explorer”   
过程的最后一行消灭了对象WshShell,因为,不再需要它了。  
Set WshShell = Nothing   
你可以启动你应用程序和某个特定的文件,而不是打开一个空的应用程序窗口,如下所示:  
Sub OpenTxtFileInNotepad()   
      Dim WshShell As Object   
      Set WshShell = CreateObject(〃WScript。Shell〃)   
      WshShell。Run 〃Notepad C:Phones。txt〃   
      Set WshShell = Nothing   
End Sub   
试验下面的过程来打开MS…DOS窗口,并且将当前目录下的文件清单打印出来:  
Sub RunDOSmand()   
      Dim WshShell As Object   
      Set WshShell = CreateObject(〃WScript。Shell〃)   
      WshShell。Run (〃mand /c Dir 》lpt1:〃)   
End Sub   

32。创建快捷方式  

当你开始传播你的VBA应用程序的时候,用户可能会要求你自动在他们的桌面上放置一个你的软件 
的快捷方式。VBA自己没有提供创建快捷方式的方法。很幸运的是,你现在知道如何使用WSH了,你 
可以使用它的对象Shell创建应用程序或者网页的快捷方式,不必要用户的干涉。对象WshShell使 
用了方法CreateShortcut,你可以按照下述方法:  
Set myShortcut = WshShell。CreateShortcut(Pathname)   
Pathname是明确快捷文件完整路径的字符串。所有的快捷方式文件都有扩展名。lnk,并且该扩展名 
必须包括在文件路径名里面。CreateShortcut方法返回快捷方式对象,下面的表格里列出了很多属 
性和一个方法。  
  
    方法/语法                    示例  
    TargetPath                   TargetPath属性是可执行文件的路径  
                                 WshShell。TargetPath = ActiveWorkbook。FullName  
    WindowStyle                  WindowStyle属性明确快捷方式使用的窗口类型  
                                 1 – 普通窗口  
                                 3 – 最大化窗口  
                                 7 – 最小化窗口  
                                 WshShell。WindowStyle = 1  
    HotKey                       HotKey 属 性 是 键 盘 快 捷 方 式 ( 例 如 , Alt+f;  Shift+g;  
                                 Ctrl+Shift+z; 等等)  
                                 WshShell。Hotkey = 〃Ctrl+Alt+w〃  
    IconLocation                 IconLocation属性是快捷方式图标的位置。因为图标文件里通常 
                                 不止一个图标,所以你应该提供图标文件的路径,并且后面标明 
                                  图标在文件里的索引号。如果不明确的话,Windows 会使用缺省 
                                  的图标。  
                                 WshShell。IconLocation = 〃notepad。exe; 0〃  
    Description                  Description属性包含一个描述快捷方式的字符串   
                                 WshShell。Description = 〃Wordware Web Site〃  
    WorkingDirectory             WorkingDirectory属性明确快捷方式的工作目录   
                                 strWorkDir = WshShell。SpecialFolders(〃Desktop〃)   
                                 WshShell。WorkingDirectory = strWorkDir  
    Save                         这是对象Shortcut的唯一方法。在使用方法CreateShortcut创建 

                                             165 

… 页面 182…

                                 一个快捷方式对象并且设置该快捷方式的属性后,必须使用Save 
                                 方法将快捷方式对象保存到硬盘上。  
  
创建快捷方式是个三步的过程:  
1。 创建一个WshShortcut对象  
2。 初始化它的属性  
3。 用方法Save将它保存到硬盘  
下面的例子创建一个WshShell对象和使用CreateShortcut方法创建两个快捷方式:一个到当前 
Excel工作簿的Windows快捷方式,和一个到Wordware Publishing网页的互联网快捷方式。两个快 
捷方式都放在用户的桌面上。该过程使用对象WshShell的SpecialFolders属性来返回到视窗桌面的 
路径。  
Sub CreateShortcut()   
      ' this script creates two desktop shortcuts   
      Dim WshShell As Object   
      Dim objShortcut As Object   
      Set WshShell = CreateObject(〃WScript。Shell〃)   
      ' create an internet shortcut   
      Set objShortcut = WshShell。CreateShortcut(WshShell。 _   
            SpecialFolders(〃Desktop〃) & 〃Wordware。url〃)   
      objShortcut。TargetPath = 〃wordware〃   
      objShortcut。Save   
      ' create a file shortcut   
      Set objShortcut = WshShell。CreateShortcut(WshShell。 _   
            SpecialFolders(〃Desktop〃) & 〃” & ActiveWorkbook。Name & 〃。lnk〃)   
      With objShortcut   
            。TargetPath = ActiveWorkbook。FullName   
            。WindowStyle = 7  
            。Save   
      End With   
      Set objShortcut = Nothing   
      Set WshShell = Nothing   
End Sub   
技巧8…12 使用SpecialFolders属性  
你可以使用SpecialFolders属性在你的机器上找到特殊文件夹的位置。下述特殊文件夹是可用的: 
AllUsersDesktop(所有用户桌面), AllUsersStartMenu(所有用户开始菜单),AllUsersPrograms 
 (所有用户程序),AllUsersStartup(所有用户启动),Desktop(桌面),Favorites(收藏),Fonts 
 (字体),MyDocuments(我的文档),NetHood(网络连接),PrintHood(打印机),Programs(程 
序),Recent(最近),SendTo(发送到),StartMenu(开始菜单),Startup(启动)和 Templates 
 (模版)。如果请求的特殊文件夹不可用,那么SpecialFolders属性就会返回一个空字符串。  

33。接下来……  

在本章的课程里,你学习并且测试了让你操作文件系统的VBA函数和语句。你知道了如何读取和修 
改与文件和文件夹有关的信息,而且,知道了如何执行对顺序,随机和二进制文件的读和写的操作。 
你也学习了如何使用WSH来访问FileSystemObject和进行其它操作,例如启动应用程序和使用对象 
WshShell创建Windows快捷方式。如果你对讨论的函数和语句更详细的东西感兴趣的话,那么就花 
些时间来浏览一下VB在线帮助吧。  
接下来的一章将给你介绍更多的自动化任务。例如,你将学习如何使用VBA来控制其它应用程序。 
你将学习启动应用程序的多种方法,并且研究如何直接从Microsoft Excel里操纵其它应用程序。  

                                             166 

… 页面 183…

                            第九章 利用 VBA 控制其它应用程序  

你每天在办公室里或者家里在你的电脑上工作时,都要用到很多种应用程序。要从你的硬盘或者软 
盘上查找某个文件的话,你就要打开视窗浏览器。当你要设置系统时间或者更改屏幕外观的话,可 
以点击控制面板上的相应的图标。如果你的电脑上安装了微软办公软件套餐的话,就可以使用Word 
创建各种各样的文件,并且依靠Excel进行所有的计算。微软Access对于保存重要的数据表非常有 
用,而PowerPoint则有助于你使用声音和图片。最后,微软Outlook使你易于保存你的联系、时间 
和约会并且分享给他人。使用这些应用软件的时候,你经常要在他们之间切换,你可以使用键盘直 
接输入数据或者复制或移动数据。这些操作——打开应用程序以及在它们之间传输数据时不需要手 
动操作的。它们可以通过一些很有趣的VBA函数和指令来自动完成。在本章,你将学习多种从VBA 
过程里打开应用程序的方法,并且找到如何使用称为自动化的技术直接从微软Excel直接控制其它 
应用程序。  

1。启动应用程序  

启动一个应用程序的方法不止一个,实际上,你至少可以使用五种方法手动打开某个程序:通过“开 
始”|“程序”菜单,快捷键,“运行”命令,MS…DOS窗口,或者在视窗浏览器里双击可执行文件。  
本节假设你对手动启动应用程序很熟悉,并且很想从Excel内部的VB编辑窗口试验其它启动应用程 
序的方法。  
我们从最简单的开始吧——Shell函数。该函数使你可以从VBA过程里直接打开任意程序。假设你的 
过程必须打开视窗记事本,要打开记事本,你所有要做的就是在关键字Sub和End Sub之间加上一条 
语句,或者更好的方法是在立即窗口里输入下述语句,并且按下回车键:  
Shell 〃notepad。exe〃; vbMaximizedFocus  
你将立即看到结果。  
在上面的语句里,“notepad。exe”是你要打开的程序的名称。如果你担心程序找不到的话,那么该 
名称就应该包含完整的路径(启动器名称和文件夹名称)。注意,程序名称用双引号括起来了。Shell 
函数的第二个参数可以忽略。该参数明确窗口形式(也就是当程序启动的时候,它如何显示在屏幕 
上的)。在上面的例子里,记事本将显示为最大化的窗口。如果没有明确窗口形式,那么程序就会 
被最小化(参见表9…1)。  
窗口形式常数                值             窗口显示情况  
vbHide                      0              窗口被隐藏  
vbNormalFocus               1              普通大小,并带焦点  
vbMinimizedFocus(默认设    2              最小化,并带焦点(这是缺省设置)  
置)  
vbMaximizedFocus            3              最大化,并带焦点  
vbNormalNoFocus             4              普通大小,并失去焦点  
vbMinimizedNoFocus          6              最小化,并失去焦点  
  
如果Shell函数能够启动某个可执行文件,那么它就会返回一个叫做任务ID的号码。该号码是指示 
应用程序启动的唯一号码。如果Shell函数不成功的话(也就是说某应用程序不能打开),VB就会产 
生一错误。如果你要使用Shell函数启动的应用程序的话,就不要在Shell函数后面输入任何语句。 
Shell函数启动程序是不同时的,意思是说VB启动Shell函数指定的应用程序,并且,VB在启动程序 
后,立即就回到过程里面去继续剩余的指令(因此,你没有机会立即使用该应用程序)。你如果使 
用Shell函

返回目录 上一页 下一页 回到顶部 0 0

你可能喜欢的