fs。CreateTextFile 〃New。txt〃
Set objFile = fs。GetFile(〃New。txt〃)
Set objText = objFile。OpenAsTextStream(ForWriting; _
TristateUseDefault)
objText。Write 〃Wedding Invitation〃
objText。Close
Set objText = objFile。OpenAsTextStream(ForReading; _
TristateUseDefault)
MsgBox objText。ReadLine
objText。Close
End Sub
30。使用 WSH 进行其它操作
WSH使任何安装在你计算机上的自动化对象的操作成为可能。
除通过FileSystemObject访问文件系统之外,WSH也允许你进行其它的一些操作,例如,处理WSH
和ActiveX对象,设定和去除打印机和远程驱动器,操纵注册表,创建视窗和互联网快捷方式以及
访问Windows NT 活动地址服务。WSH对象模型由下述三种主要对象组成:WScript,WshShell和
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使你易于保存你的联系、时间
和约会并且分享给他人。使用这些应用软件的时候,你经常要在他们之间切换,你可以使用键盘直
接输入数据或者复制或移动数据。这些操作——打开应用程序以及在它们之间传输数据时不需要手