Объектная модель VBA
Таблица 21.1. Описание объектов VBA.
Объект | Тип | Описание |
---|---|---|
Collection | Объект из библиотеки VBA | Упорядоченная совокупность объектов, с которой можно обращаться как с единым объектом |
Debug | Объект | Позволяет выводить текущую информацию в окно отладки непосредственно во время выполнения кода на VBA |
Dictionary | Объект из библиотеки Scripting | Объект, представляющий пару – ключ и элемент. Является аналогом ассоциативной памяти |
Drives | Семейство из библиотеки Scripting | Содержит объекты Drive, предоставляющие информацию (только для чтения) обо всех доступных дисках. Является свойством объекта FileSystemObject |
Drive | Объект – из библиотеки Scripting | Предоставляет доступ к свойствам конкретного локального или сетевого диска |
Err | Объект из библиотеки VBA | Предназначен для обработки ошибок Automation и ошибок модулей VBA во время выполнения кода на VBA |
Files | Семейство из библиотеки Scripting | Содержит объекты класса File и представляет совокупность всех файлов в данной папке. Является свойством объекта FileSystemObject |
File | Объект из библиотеки Scripting | Предоставляет доступ ко всем свойствам файла на диске |
FileSystemObject | Объект из библиотеки Scripting | Предоставляет доступ к файловой системе компьютера |
Folders | Семейство из библиотеки Scripting | Содержит объекты Folder и представляет совокупность всех папок внутри данной папки. Является свойством объекта Folder (свойство называется SubFolders) |
Folder | Объект из библиотеки Scripting | Предоставляет доступ ко всем свойствам папки на диске |
Textstream | Объект из библиотеки Scripting | Обеспечивает последовательный доступ к текстовому файлу |
UserForms | Семейство из библиотеки VBA | Содержит объекты Object, соответствующие объектам UserForm, и представляет совокупность пользовательских форм, загруженных в данный момент в приложение. Это семейство является свойством объекта Global из библиотеки VBA |
UserForm | Абстрактный объект VBA Object | Представляет форму, являющуюся частью пользовательского интерфейса приложения. Характеристики этого объекта определяются пользователем |
Продемонстрируем небольшой пример работы с рядом объектов VBA. Мы хотим вывести в окно Immediate посредством метода Print объекта Debug литеры, соответствующие логическим дискам компьютера. Для этого мы указали ссылку на объект, являющийся семейством Drives, после чего, воспользовавшись циклом For Each… Next, вывели требуемые значения посредством свойства DriveLetter объекта Drive.
Замечание
Цикл For Each… Next очень полезен при работе с семействами, поскольку не требуется знать количество объектов семейства и можно устраивать цикл по всей структуре. В противном случае необходимо было бы воспользоваться свойством count.
Программа 21.1. Использование объектов VBA
Sub
ShowDriveList()
Set
fsystem = CreateObject(
"Scripting.FileSystemObject"
)
Set
systemDrives = fsystem.Drives
For
Each
d
In
systemDrives
Debug.Print d.DriveLetter
Next
End
Sub