Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Раннее и позднее связывание




Среда VBA позволяет не описывать переменные или приводить только частичное описание: указывается область видимости без указания типа. По-видимому, эта возможность помогает быстро написать маленькую одноразовую программку. В любом другом случае переменные необходимо описывать полностью!

Имена переменных и объектов должны быть осмысленными и такими, чтобы они быстрее находились в выпадающем по Ctrl+J списке доступных объектов. Рекомендуется следующий подход: все имена должны быть составлены из латинских букв и цифр, причем первый символ – буква, имена элементов управления и других ActiveX объектов должны начинаться с оставшихся заглавных букв типа (то есть вид объекта), затем знака подчеркивания «_», затем – осмысленное название.

Описывая переменную и указывая ее тип, вы, во-первых, ограждаете себя от ошибок, т.к. никогда не получится так, что разным сущностям вы нечаянно дали одинаковые имена. Во-вторых, вы, вообще говоря, экономите память, т.к. не типизированные переменные автоматически приобретают тип Variant, занимая при этом больше места, чем необходимо. Наконец, в-третьих, подсказчик доступных объектов может помогать вам, подсказывая только объекты тех типов, которые могут использоваться в текущем месте. Правда, в среде VBA нет такого ограничения.

Работая с объектами на VBA можно воспользоваться одним из двух возможных способов: механизмом раннего связывания и механизмом позднего связывания. При раннем связывании Вы при описании сразу указываете тип объектной переменной. Результат раннего связывания состоит в том, что далее редактор VBA (если Вы нажмете Ctrl+J) подсказывает Вам свойства и методы этого объекта.

При позднем связывании в описании переменной вы указываете тип Object. При этом вы сообщаете транслятору (компилятору), что это объектная переменная, но ничего конкретного о структуре объекта не сообщаете. Очевидно, что после такого описания редактор не в состоянии подсказать вам свойства и методы этого объекта. Только при выполнении программы Вы можете решить, на какой именно объект будет ссылаться эта объектная переменная, присвоив объектной переменной некоторый объект.

Преимущество позднего связывания состоит в том, что с помощью одной и той же объектной переменной Вы можете обрабатывать объекты разных типов. Впрочем, вам все равно в программе придется разобраться с тем, что это за объект. Несколько более реальный пример преимущества следующий: если вы в программе формируете экземпляр при помощи функции GreateObject, то, вероятно, вы не знаете, объект какого типа вы получите. В этом случае можно сначала описать переменную типа Object, а затем в отладчике выполнить оператор с GreateObject и посмотреть в окне Watch получившийся тип переменной. Затем следует прервать выполнение программы и указать верный тип вместо Object.

Если речь идет о внешних объектах, то для того чтобы редактор «узнал» эти объекты, следует сообщить ему, в какой библиотеке лежит описание и код объекта. То есть необходимо подключить в пункте Tools – References требуемые библиотеки.dll,.ocx и т.п. В частности, если в скрипте к Word-документу вы хотите обратиться к Excel-документу, необходимо в появившемся списке библиотек найти Microsoft Excel 12.0 Object Library. Версия библиотеки у вас может быть другая!

Необходимо заметить, что не существует хорошего способа определить, в какой библиотеке находится нужный объект. Ориентироваться можно только на осмысленность названия. Хотя это не всегда помогает. Например, трудно догадаться, что объект FileSystemObject находится в библиотеке Microsoft Scripting Runtime.

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

Сначала Dim ob as Object, wb as Object Set ob=CreateObject(“Excel.Application”) Set wb=ob.Workbooks.Open(“ras.xsl”) Позже Dim ob as Excel.Application, wb as Excel.Workbook Set ob=CreateObject(“Excel.Application”) Set wb=ob.Workbooks.Open(“ras.xsl”)

Дополнительные элементы управления (ActiveX –объекты)

На форме Вы можете расположить не только базовые элементы управления, но и дополнительные ActiveX объекты. Для этого перейдите в редакторе VBA в форму, после чего в меню Tools Вы обнаружите пункт Additional Controls. Выберите интересующий Вас элемент управления, и он появится на панели инструментов. Как работать с этим элементом управления можно узнать из справочника, обычно поставляемого вместе с включающей его библиотекой. Достаточно много сведений вы можете найти в справочнике MSDN.





Поделиться с друзьями:


Дата добавления: 2016-11-18; Мы поможем в написании ваших работ!; просмотров: 560 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Жизнь - это то, что с тобой происходит, пока ты строишь планы. © Джон Леннон
==> читать все изречения...

2264 - | 2037 -


© 2015-2024 lektsii.org - Контакты - Последнее добавление

Ген: 0.008 с.