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

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

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



                               里讨论。  
    IsRootFolder               如果本文件夹为根文件夹则返回True  
    Name                       文件夹名称  
    ParentFolder               该文件夹的父文件夹  
    Path                       文件夹的完整路径  
    Size                       文件夹大小,以字节表示  
                               Function IsFolderEmpty(myFolder)   
                               Dim fs; objFolder   
                               Set fs = CreateObject(〃Scripting。FileSystemObject〃)   
                               Set objFolder = fs。GetFolder(myFolder)   
                               IsFolderEmpty = (objFolder。Size = 0)   
                               End Function  
    SubFolders                 该文件夹中的子文件夹集合  
    Type                       文件夹类型(例如文件夹或回收站)  
  

28。驱动器对象属性  

对象Drive提供了访问到电脑或服务器上某驱动的属性。下述代码创建了对Drive对象的引用:  
Set fs = CreateObject(〃Scripting。FileSystemObject〃)   
Set objDrive = fs。GetDrive(“C:”)   
在下面的表格里,你将看到好几个使用Drive对象的程序示例。  
                                         161 

… 页面 178…

  
    属性                        描述  
    AvailableSpace             可用空间,字节表示  
    FreeSpace                  同AvailableSpace  
    DriveLetter                驱动器字母(没有冒号)  
    DriveType                  驱动器类型:  
                                0 — 未知  
                                1 — 可移动  
                                2 — 固定  
                                3 — 网络  
                               4 — CD驱动  
                                5 — RAM   
                               Sub CDROM_DriveLetter()   
                               Const CDROM = 4   
                               Dim fs; colDrives   
                               Set fs = CreateObject(〃Scripting。FileSystemObject〃)   
                               Set colDrives = fs。Drives   
                               For Each Drive In colDrives   
                                If Drive。DriveType = CDROM Then   
                               MsgBox 〃The CD…ROM Drive: 〃 & _   
                               Drive。DriveLetter   
                               End If   
                               Next   
                               End Sub  
    FileSystem                 文件系统,例如,FAT; NTFS或CDFS  
    IsReady                     如果合适的媒体(例如CD)插入了并且可以访问则返回True  
                               Function IsCDROMReady(strDriveLetter)   
                               Dim fs; objDrive   
                               Set fs = CreateObject(〃Scripting。FileSystemObject〃)   
                               Set objDrive = fs。GetDrive(strDriveLetter)   
                                IsCDROMReady = (objDrive。DriveType = 4) And _   
                                objDrive。IsReady = True   
                                ' run this function from the Immediate window   
                                ' by entering: ?IsCDROMReady(〃D:〃)   
                               End Function  
    Path                       根文件夹路径  
    SerialNumber               驱动器系列号  
    TotalSize                  驱动器总容量,以字节表示  
  

29。使用 WSH 创建文本文件  

WSH提供了三种创建文本文件的方法:CreateTextFile,OpenTextFile和OpenAsTextStream。下面 
的表格里列出了每种方法和示例。  
  
    方法/语法                   示例  
    CreateTextFile             object。CreateTextFile(filename'; overwrite'; unicode'')  
                               Object是对象FileSystemObject或Folder的名称。  
                                filename是明确要创建文件的字符串表达式。  
                               Overwrite (可选的) 是个布尔值,表明你是否要覆盖已经存在 
                                的文件,如果可以覆盖那么该值为True,如果不能覆盖则为 
                                          162 

… 页面 179…

                          False,如果忽略,那么现存的文件将不会被覆盖。  
                          Unicode (可选的) 是个布尔值,表明该文件创建为Unicode或者 
                          ASCII类型的文件。如果文件创建为Unicode类型那么该值为真, 
                           如果文件为ASCII的话那么该值为假。如果忽略掉,那么就会创 
                           建ASCII类型的文件。   
                           Sub CreateFile_Method1()   
                          Dim fs; objFile   
                           Set fs = CreateObject(〃Scripting。FileSystemObject〃)   
                           Set objFile = fs。CreateTextFile(〃C:Phones。txt〃; True)   
                           objFile。WriteLine (〃Margaret Kubiak: 212…338…8778〃)   
                           objFile。WriteBlankLines (2)   
                           objFile。WriteLine (〃Robert Prochot: 202…988…2331〃)   
                           objFile。Close   
                           End Sub   
                           上面的过程创建了一个文本文件来储存两个人的姓名和电话号 
                           码。因为在覆盖参数处是一个True布尔值,所以,如果 
                           C:Phones。txt已经存在的话就会被覆盖。   
OpenTextFile               object。OpenTextFile(filename';    iomode';     create';  
                           format''')   
                           Object是FileSystemObject对象的名称。  
                          Filename是明确要打开的文件名称的字符串表达式。  
                           Iomode (可选的) 是个布尔值,表示如果该文件不存在时是否创 
                           建一个新文件,如果可以创建新文件则为真,否则为假。如果忽 
                           略该参数,那么不会创建新文件。(译者,红色段落为原文翻译, 
                           应该是错误的)  
                           参数iomode 可以是下述常数之一:   
                          ForReading (1)   
                          ForWriting (2)   
                          ForAppending (8)   
                           Create (可选的) 是个布尔值,表示如果该文件不存在时是否创 
                           建一个新文件,如果可以创建新文件则为真,否则为假。如果忽 
                           略该参数,那么不会创建新文件。  
                          Format (可选的) 是用来表明打开文件类型的三种类型之一。如 
                           果忽略,文件就会打开为ASCII。  
                           TristateTrue = 打开文件为ASCII。   
                           TristateFalse =打开文件为Unicode。  
                           TristateUseDefault = 使用系统默认方式打开文件  
                           Sub CreateFile_Method2()   
                          Dim fs; objFile   
                           Set fs = CreateObject(〃Scripting。FileSystemObject〃)   
                           Set  objFile  =  fs。OpenTextFile(〃C:Shopping。txt〃;  _  
                          ForWriting; True)   
                           objFile。WriteLine (〃Bread〃)   
                           objFile。WriteLine (〃Milk〃)   
                           objFile。WriteLine (〃Strawberries〃)   
                           objFile。Close   
                           End Sub  
OpenAsTextStream           object。OpenAsTextStream('iomode; 'format'')   
                           Object是File对象名称。  
                           Iomode (可选的) 表明读写模式,它可以是下述三个常数之一:  

                                     163 

… 页面 180…

                                ForReading (1)   
                                ForWriting (2)   
                                ForAppending (8)   
                                Format (可选的) 是用来表明打开文件类型的三种类型之一。如 
                                果忽略,文件就会打开为ASCII。   
                                TristateTrue = 打开文件为ASCII。   
                                TristateFalse =打开文件为Unicode。  
                                TristateUseDefault = 使用系统默认方式打开文件  
                                Sub CreateFile_Method3()   
                                Dim fs; objFile; objText   
                                Set fs = CreateObject(〃Scripting。FileSystemObject〃)  
                                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属性是快捷方式图标的位置。因为图标文件里通常 
                                 不止一个图标,所以你应该提供图标文件的路径,并且后面标明 
                                  图标在文件�
返回目录 上一页 下一页 回到顶部 赞(5) 踩(3)
未阅读完?加入书签已便下次继续阅读!
温馨提示: 温看小说的同时发表评论,说出自己的看法和其它小伙伴们分享也不错哦!发表书评还可以获得积分和经验奖励,认真写原创书评 被采纳为精评可以获得大量金币、积分和经验奖励哦!