分享

使用VBA操作文件(8):使用WSH进行其他操作

 JT_man 2014-09-16

WSH使得操作任何安装在计算机上的自动化对象成为可能,除了可以通过FileSystemObject对象访问文件系统外,也允许进行其他的一些操作,例如处理WSH和ActiveX对象、设定和去除打印机和远程驱动器、操控注册表、创建Windows和Internet的快捷方式、以及访问Windows NT Active Directory服务。
WSH对象模型由下列三种主要对象组成:WScript、WshShell和WshNetwork。
运行其他应用程序
这里提供了从Excel中启动外部应用程序的一种方法。例如,下面的程序启动记事本:

Sub RunNotepad()
    Dim WshShell As Object
    Set WshShell = CreateObject("WScript.Shell")
    WshShell.Run "Notepad"
    Set WshShell = Nothing
End Sub

将相关语句修改为下列语句,分别可以用来启动计算器或浏览器:

WshShell.Run "Calc"
WshShell.Run "Explorer"

可以打开带有指定文档的应用程序而不是打开一个空的应用程序窗口,例如:

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 RunDOSCommand()
    Dim WshShell As Object
    Set WshShell = CreateObject("WScript.Shell")
    WshShell.Run ("Command /c Dir >1pt1:")
End Sub

创建快捷方式
可以使用Shell对象创建应用程序或者网页的快捷方式。WshShell对象有一个CreateShortcut方法,返回快捷方式对象:

Set myShortcut=WshShell.CreateShortcut(Pathname)

其中,参数Pathname是指定快捷文件完整路径的字符串。所有快捷方式文件都带有扩展名.Ink,并且该扩展名必须包括在文件路径名中。
ShortCut对象的属性和方法介绍如下:
(1)TargetPath属性
代表可执行文件的路径。例如:

WshShell.TargetPath=ActiveWorkbook.FullName

(2)WindowStyle属性
指定快捷方式使用的窗口类型。其中1代表普通窗口,3代表最大化窗口,7代表最小化窗口。例如,

WshShell.WindowStyle=1

(3)HotKey属性
指定键盘快捷方式(例如Alt+f、Shift+g、Ctrl+Shift+z,等等),例如,

WshShell.HotKey="Ctrl+Alt+W"

(4)IconLocation属性
指定快捷方式图标的位置。因为图标文件中通常不止一个图标,所以应该提供图标文件的路径,并且后面标明图标在文件里的索引号。如果不指定,则Windows使用缺省的图标,例如

WshShell.IconLocation="notepad.exe,0"

(5)Description属性
包含一个描述快捷方式的字符串。例如,

WshShell.Description="Wordware Web Site"

(6)WorkingDirectory属性
指定快捷方式的工作目录。例如:

strWorkDir=WshShell.SpecialFolders("Desktop")
WshShell.WorkingDirectory=strWorkDir

(7)Save方法
这是ShortCut对象的唯一方法。在使用CreateShortcut方法创建快捷方式对象并且设置该快捷方式的属性后,必须使用Save方法将快捷方式保存到磁盘上。
下面的过程创建WshShell对象并使用CreateShortcut方法创建两个快捷方式:一个为当前工作簿的快捷方式,另一个为到Wordware Publishing页面的快捷方式。这两个快捷方式均放置在用户桌面上。

Sub CreateShortcut()
    '在桌面创建两个快捷方式
    Dim WshShell As Object
    Dim objShortcut As Object
    Set WshShell = CreateObject("WScript.Shell")
    '创建一个Internet快捷方式
    Set objShortcut = _
 WshShell.CreateShortcut(WshShell.SpecialFolders("Desktop") _
& "\Wordware.url")
    objShortcut.TargetPath = "http://www."
    objShortcut.Save
    '创建一个文件快捷方式
    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

CreateShortcut过程使用WshShell对象的SpecialFolders属性返回Windows桌面的路径。
提示 可以使用SpecialFolders属性查找计算机中特殊文件夹的位置。例如下列特殊文件夹:AllUsersDesktop(所有用户桌面)、AllUsersStartMenu(所有用户开始菜单)、AllUsersPrograms(所有用户程序)、AllUsersStartup(所有用户启动)、Desktop(桌面)、Favorites(收藏夹)、Fonts(字体)、MyDocuments(我的文档)、NetHood(网络连接)、PrintHood(打印机连接)、Programs(程序)、Recent(最近)、SendTo(发送到)、StartMenu(开始菜单)、Startup(启动)和Templates(模板)。如果请求的特殊文件夹不可用,则SpecialFolders属性返回一个空字符串。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多