русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Объекты в программах на VBA и объектные переменные


Дата добавления: 2015-06-12; просмотров: 3456; Нарушение авторских прав


Код VBA большей частью основан на использовании объектов. Например, презентация PowerPoint, рабочая книга Excel или диапазон ячеек являются объектами. Объекты – это элементы, которыми можно управлять. Объекты Microsoft Office образуют иерархии, они более подробно рассматриваются ниже, при изучении конкретных приложений. Все объекты документированы во встроенной справочной системе VBA.

Каждый объект имеет свойства (атрибуты, характеризующие его) и методы (операции, которые можно выполнять над данным объектом). При обращении к конкретному свойству или методу объекта необходимо указать объект и нужное свойство или метод. Общий синтаксис, используемый при манипулировании объектами следующий:

Объект.Свойство или Объект.Метод

В одной строке кода можно выполнить только один метод, вызвав его:

Объект.Метод ()

Для вызова метода необходимо указать объект и метод. Кроме того, большинство методов имеют набор аргументов, позволяющих выполнить дополнительную настройку. Аргументы могут быть обязательными и необязательными. Если при вызове метода необязательные аргументы не передаются, они принимают значения по умолчанию. Аргументы при вызове метода могут передаваться по имени и в соответствии с позицией, как и аргументы процедур.

Одна строка кода может содержать оператор присваивания, устанавливающий свойство объекта (задающий значение свойства объекта, записанного в левой части оператора присваивания, равным значению выражения, записанного в правой части оператора присваивания):

Объект.Свойство = Выражение

Значение свойства объекта может быть получено и использовано при вычислении значения выражения.

Некоторые объекты имеют свойство «по умолчанию» – свойство, к которому происходит обращение, если в операторе указан только объект.

При записи полного имени объекта в нем перечисляются имена всех объектов, находящихся на предшествующих уровнях иерархии (например, для указания диапазона ячеек на рабочем листе книги Excel нужно указать имя рабочей книги, имя рабочего листа и имя или координаты диапазона). Эти имена записываются через точку.



Объектные переменные могут хранить ссылки на объекты. Их целесообразно использовать, если обращение к объекту производится многократно. Такие переменные создаются в два шага: сначала ее нужно объявить, а затем установить значение. Одну и ту же переменную можно использовать для ссылки на различные объекты. Но это снижает эффективность программы, так как при использовании типа данных Object происходит позднее (во время выполнения программы) связывание. Раннее связывание происходит во время компиляции. Для его реализации нужно объявлять переменные, указывая в качестве типа конкретный класс объекта (например, Range или Presentation), т.е. классы для объектов играют ту же роль, что и типы для переменных.

В программах на VBA можно работать как с единичными объектами, так и с семействами объектов. Семейство определяется как группа подобных объектов. Семейство содержит упорядоченное множество элементов (например, множество элементов управления данной формы или множество сценариев).

На единичные объекты ссылаются непосредственно по имени, а на объект в семействе ссылаются по индексу в семействе (например, по номеру можно сослаться на рабочий лист). Индексы объектов в семействах всегда начинаются с 1. При обращении по номеру (индексу) следует учитывать, что нумерация осуществляется в том порядке, в котором объекты добавлялись в семейство. Таким образом, к любому объекту в семействе можно обратиться как по его собственному имени, так и по индексу в семействе. Способ обращения зависит от решаемой задачи (если нужно перебрать все элементы семейства, или какое-то их подмножество, удобнее работать с индексами; если же выполняется операция над конкретным объектом, лучше использовать его имя).

Семейству принадлежат не уникальные объекты, а объекты, которые могут существовать в нескольких экземплярах в каждом контексте. Хотя семейство содержит группы объектов, само семейство тоже является объектом. Семейство также имеет связанные с ним свойства и методы. VBA предоставляет три основных метода для работы с семействами: Add (добавить элемент в семейство), Remove (удалить элемент из семейства), Count (количество элементов в семействе).

Когда приложение используется для управления объектами из другого приложения, необходимо создать ссылку на библиотеку типов второго приложения. Когда ссылка определена, имеется возможность описать объектные переменные с наиболее подходящим для них типом. Например, если при работе в Microsoft Access определяется ссылка на библиотеку типов Microsoft Excel, то внутри Microsoft Access можно описать переменную типа Worksheet, чтобы она представляла объект Worksheet Microsoft Excel.

Если для управления объектами Microsoft Access используется другое приложение, то, как правило, объектные переменные описываются с наиболее подходящим для них типом. Возможно также использование ключевого слова New для автоматического создания нового экземпляра объекта. Однако необходимо указать, что это объект Microsoft Access. Например, если описывается объектная переменная, представляющая форму Microsoft Access внутри Microsoft Visual Basic, необходимо различать объект Form Microsoft Access и объект Form Visual Basic. Имя библиотеки типов включается в описание переменной, как показано в следующем примере:

Dim frmOrders As New Access.Form

Некоторые приложения не распознают отдельные объектные типы Microsoft Access. Даже если в этих приложениях создана ссылка на библиотеку типов Microsoft Access, необходимо описать все объектные переменные Microsoft Access с типом Object. В этом случае ключевое слово New также не может использоваться для создания нового экземпляра объекта. В следующем примере показано, как в таком приложении надо описывать переменную, чтобы она представляла экземпляр объекта Application Microsoft Access; затем приложение создает экземпляр объекта Application.

Dim appAccess As Object

Set appAccess = CreateObject(“Access.Application”)

Синтаксис, поддерживаемый конкретным приложением, описан в документации по приложению.

Для подключения ссылок можно использовать команду меню Сервис.



<== предыдущая лекция | следующая лекция ==>
Option Explicit | Создание объектов пользователя


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 2.049 сек.