Семейство
Documents u объект Document
Первым в иерархии объектов приложения Word является объект Document, представляющий любой документ, который можно открыть в Word, или иной документ, который можно отобразить в окне Word. Все открытые документы принадлежат семейству Documents (Документы), которое состоит из объектов Document. Подобно всем другим семействам, это семейство поддерживает свойство Count (Число открытых документов), метод Add (Добавить), с помощью которого можно добавить новый документ, и метод Remove (Удалить), который позволяет закрыть существующий документ. Чтобы обратиться к уже открытому документу, можно воспользоваться методом Item (Элемент) из семейства Documents (Документы), определив индекс документа следующим образом:
Application.Documents.Item(1)
Аналогичным образом можно определить имя документа:
Application.Documents.Item ("MasteringVB.doc")
Поскольку Item — это заданное по умолчанию свойство, то можно полностью опустить его имя:
Application.Documents(I)
Чтобы открыть существующий документ, можно воспользоваться методом Open (Открыть) семейства Documents (Документы):
Documents.Open(fileName)
Параметр
fileName — это путь и имя файла документа.
Для создания нового документа, следует воспользоваться методом Add семейства Documents (Документы), который принимает два необязательных параметра:
Documents.Add(template, newTemplate)
Параметр
template определяет имя файла шаблона, который нужно использовать в качестве основы для нового документа. Параметр newTemplate
является значением типа Boolean. Если он имеет значение True, Word создаст новый файл шаблона.
Большинство выполняемых операций воздействуют на активный документ (документ в активном окне Word), который представляется объектом ActiveDocument, являющийся свойством объекта Application. Чтобы обращаться к выделенному тексту в активном документе, следует воспользоваться следующим выражением:
Application ActiveDocument.Selection
Можно сделать активным любой документ, вызвав метод Activate (Активизировать) объекта Document. Чтобы сделать документ My Notes doc активным, можно воспользоваться следующим оператором:
Documents ("MyNotes doc"). Activate
После выполнения этого оператора документ MyNotes doc становится активным, и программа может обращаться к нему по имени Application ActiveDocument
Worksheets и объект Worksheet
Каждая рабочая книга в Excel может содержать один или несколько рабочих листов. Коллекция Worksheets, подобная коллекции Documents в Word, содержит объект Worksheet
для каждого рабочего листа в текущей рабочей книге. Чтобы добавить новый рабочий лист, следует воспользоваться методом Add:
Application.Worksheets.Add(before, after, count, type)
Параметры
before и after позволяют определить расположение нового рабочего листа в рабочей книге. Можно определить только один из двух параметров. Если опустить оба параметра, то новый рабочий лист будет вставлен перед активным рабочим листом (и станет активным). Параметр type определяет тип нового рабочего листа и может иметь одно из следующих значений.
• xlWorksheet. Значение, установленное по умолчанию.
• xIExcel4MacroSheet. Рабочий лист, содержащий макросы Excel 4.
• xlExcel4lntlMacroSheet. Рабочий лист, содержащий международные макросы Excel 4. Чтобы обратиться к рабочему листу, следует воспользоваться методом Item коллекции Worksheets, передавая в качестве параметра индекс или имя рабочего листа. Если второй рабочий лист называется SalesData.xIs, то следующие выражения эквивалентны:
Application.Worksheets.Item(2)
и
Application.Worksheets.Item ("Sales Data.xls")
Поскольку Item — это установленное по умолчанию свойство коллекции, имя его можно полностью опустить:
Application.Worksheets (2)
Объекты, предоставляющие доступ к ячейкам
Excel - это приложение, которое предназначено для обработки информации хранящейся в ячейках. Но основным объектом, используемым для организации доступа к содержимому рабочего листа, является объект Range, являющийся свойством объекта Worksheet. Имеются несколько способов идентификации объекта Range, но ниже приведено каноническое его описание:
Worksheet.Range(celll:се112)
Где cell1 и сеll2
—адреса двух ячеек, которые определяют прямоугольную область на рабочем листе. Это адреса левой верхней и правой нижней ячеек блока. В этом параграфе будет использована стандартная нотация Excel, в которой число определяет строку, а буква - столбец, например, СЗ или А103. Чтобы выбрать блок ячеек размером 10 х 10, занимающий левый верхний угол активного рабочего листа, следует воспользоваться выражением:
Files
Семейство Files содержит объект File для каждого файла папки. Следующий сценарий обрабатывает все файлы указанной папки с помощью оператора For Each... Next.
Set ThisFolder = FSys.GetFolder(folderName)
Set AllFiles = ThisFolder.Files
For Each file in AllFiles
{обработка текущего файла}
Next
Внутри тела цикла предоставляется доступ к свойствам текущего файла. Его имя - это file. Name, дата создания - file.DateCreated и т.д. В следующих параграфах перечислены свойства и методы объекта File.
Folders
Семейство Folders содержит объект Folder для каждой подпапки в папке. Следующий сценарий обрабатывает каждую подпапку в указанной папке, используя оператор For Each...Next.
Set FSys = CrateObject ("Scripting. FileSystemObject")
Set ThisFolder =
FSys.GetFolder(folderName)
Set AllFolders = ThisFolder.SubFolders
For Each folder in AllFolders
{обработка текущей папки}
Next
В теле цикла доступны свойства текущей папки. Ее имя – folder.Name, дата создания — folder. DateCreated и т.д.
Свойства объекта Folder описаны ниже. Рассмотрим метод AddFolder - единственный метод объекта Folder.
AddFolder. Этот метод добавляет новый объект Folder в семейство. Его синтаксис имеет вид:
FolderObject.AddFolders folderName
где
folderName - это имя новой добавляемой папки.
Объект Folder
Этот объект представляет папку на диске. Он позволяет манипулировать реальными папками на диске с помощью своих методов и свойств. Чтобы создать объект Folder, сначала создается объектная переменная типа FileSystem Object, а затем — вызывается ее метод GetFolder, которому в качестве аргумента передается путь к папке.
Set FSys = CreateObject ("Scripting.FileSystemObject")
Set thisFolder = FSys.GetFolder("c: \windows\desktop")
Теперь переменная thisFolder
задает папку c:\windows\desktop, и вы можете работать с ней, используя свойства и объекты переменной. Кратко опишем свойства объекта Folder.
Attributes.
Возвращает или устанавливает атрибуты файлов или папок. Подробно описано в параграфе свойств объекта File.
DateCreated.
Возвращает дату и время создания указанного файла или папки ("только для чтения").
DateLastAccessed, DateLastModified.
Возвращают дату и время последнего доступа/модификации файла или папки ("только для чтения").
Drive. Возвращает имя устройства (буква), на котором находится указанный файл или папка ("только для чтения").
ParentFolder.
Возвращает родительскую папку объекта Folder. Используется в примере свойства IsRootFolder.
Subfolders
Свойство Subfolders возвращает семейство Subfolders, содержащее все подпапки данной папки. Чтобы получить семейство Subfolders папки "C:\WINDOWS", создайте переменную FileSystem Object, воспользуйтесь методом GetFolder для получения ссылки на указанную папку, а затем создайте семейство ее подпапок, используя свойство SubFolders.
Set FSys =
CreateObject ("Scripting.FileSystemObject")
Set thisFolder = FSys.GetFolder ("c:\windows")
Set allFolders = aFolder.SubFolders
For Each subFolder in allFolders
{обработка папки subFolder}
Next
Чтобы отсканировать подпапки указанной папки, используйте оператор For Each...Next, как показано выше. Имя текущей папки в теле цикла - subFolder.Name.
При обработке текущей папки можно исследовать ее файлы, чему и посвящен следующий параграф.
Environment
Свойство Environment возвращает семейство переменных среды. Для обработки этих переменных создается объект Shell и обрабатывается семейство Environment.
Set WShell = Wscript.CreateObject ("Wscript.Shell")
Set AllVars = WShell.Environment
For Each evar In AllVars
txt = txt & evar & vbCrLf
Next
MsgBox txt
Переменная
evar задает переменные среды в этой форме.
Variable =
setting
Результат работы ENWARS.VBS показан на рис. 20.11. Для доступа к определенным переменным среды используется объект Environment, описанный ниже.
Рис. 20.11. Сценарий ENWARS.VBS отображает имена и значения переменных среды
Переменные, возвращаемые методом Environment, по умолчанию — переменные среды PROCESS. Это встроенные переменные, такие как WinDir или WinBootDir, и переменные, созданные командой SET (команда DOS, встречающаяся несколько раз в файле AUTOEXEC.BAT). Эти переменные перечислены в табл. 20.6 (некоторые из них могут отсутствовать в системе). Можно передать аргумент методу Environment, который укажет, какой набор переменных возвращать. Windows NT поддерживает несколько наборов переменных среды. Windows 98 — только наборы PROCESS и VOLATILE. Сценарий может использовать набор VOLATILE для обмена с другими сценариями или динамически создавать и удалять эти переменные.
Семейство SpecialFolders
Свойство SpecialFolders предоставляет доступ к специальным папкам системы. Специальные папки включают папку Desktop (Рабочий стол), папку Start-меню и папку с персональными документами.
Примечание
Свойство SpecialFolders возвращает путь к папке Desktop (Рабочий стол), а не объект Folder. Для доступа к файлам и подпапкам этой папки необходимо создать экземпляр объекта Folder с помощью метода GetFolder объекта FileSystemObject, как показано в следующем примере.
Семейство SpecialFolders используется для создания новых ярлыков на Рабочем столе или помещения новых приложений в меню Пуск. Следующий пример выводит список всех файлов, имеющихся в папке DeskTop, и их типы. Для просмотра файлов этот сценарий (DTOP.VBS на компакт-диске) использует объект FileSystemObject.