Excel. Трюки и эффекты - [6]

Шрифт
Интервал

Тип данных Variant

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

Однако при обработке переменных типа Variant тратится дополнительное время на определение и преобразование типа данных в этих переменных – самый универсальный тип данных VBA оказывается и самым медленным. Поэтому следует избегать слишком частого и неоправданного использования переменных этого типа (например, в качестве целочисленных итераторов, счетчиков и т. д.).

Когда переменная типа Variant пуста (ей не присвоено никакого значения), она заполняется специальным значением Empty.

Ссылки. Тип данных Object

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

Объекты, доступные из VBA, существуют, пока на них установлена хотя бы одна ссылка. Первая ссылка на объект устанавливается при его создании. В процессе работы можно как устанавливать новые ссылки на объект, так и удалять их с использованием специальной инструкции Set. Пусть objRef – ссылка на некоторый объект. Тогда операция установления новой ссылки будет иметь такой вид:

Set objNewRef = objRef

Теперь objNewRef ссылается на тот же объект, что и objRef. Операция же удаления ссылок будет выглядеть следующим образом:

Set objRef = Nothing

Set objNewRef = Nothing

Если на объект не было других ссылок, кроме этих, то он будет удален.

Для доступа к объектам в VBA предусмотрен тип данных Object. Он является универсальным, так как может быть ссылкой на объект любого типа.

Объявление переменных

Для объявления переменных элементарных типов (не массивов) в блоке объявлений модуля используется следующая инструкция:

Public | Private [WithEvents] Имя_переменной [As [New] Имя_-

типа] _

[, Имя_переменной [As [New] Имя_типа]]…

Ключевые слова, записанные до первых квадратных скобок, задают область видимости переменных:

• Public – позволяет объявлять глобальные переменные и общие переменные-члены класса (о классах будет рассказано позже);

• Private – позволяет объявлять переменные, доступные только в одном модуле, и частные переменные-члены класса.

Для объявления переменных элементарных типов (не массивов) в процедурах или функциях используется такая инструкция (локальных переменных):

Dim | Static [WithEvents] Имя_переменной [As [New] Имя_типа] _

[, Имя_переменной [As [New] Имя_типа]]…

Ключевые слова, записанные до первых квадратных скобок, задают время жизни переменных:

• Dim – используется для объявления локальных переменных, которые уничтожаются после выхода из процедуры;

• Static – используется для объявления локальных переменных, значения которых сохраняются между вызовами процедуры или функции.

Ключевое слово WithEvents используется для объявления переменной-обработчика событий объекта.

Имя_переменной – это идентификатор объявляемой переменной.

Имя_типа – название типа данных объявляемой переменной.

Если конструкция [As [New] Имя_типа] не используется, то типом объявляемой переменной автоматически становится тип Variant.

Если используется ключевое слово New, то создается новый объект. New нельзя использовать совместно с WithEvents, а также при объявлении переменной типа Object и если тип Имя_типа не является объектным.

Ниже приведены примеры объявления переменных на VBA:

Public intData As Integer

Private intCount As Integer, varData

Dim strText As String

Static a, b, c

Dim objRef As Object

Dim objCtrl As New Control

Внимание!

При объявлении в одной строке нескольких переменных слово As относится только к переменной, непосредственно после идентификатора которой оно следует. Например, при объявлении Dim а, Ь, с As Integer переменные а и b будут иметь тип Variant, а переменная с – тип Integer.

Инициализация переменных

После того как переменная объявлена, VBA производит ее инициализацию указанным ниже образом.

• Переменным численных типов автоматически присваивается нулевое значение.

• Строки переменной длины после объявления являются пустыми (с нулевой длиной). Строки фиксированной длины заполняются нулевыми символами.

• Данные типа Date инициализируются значением 00:00:00 30.12.1899 (это равняется нулю при представлении даты в численном формате, о котором было рассказано выше).

• Все переменные типа Object и подобные (то есть ссылки на объекты определенного типа) принимают значение Nothing, если при их объявлении не создан новый объект (не использовалось New).

Явное и неявное объявление переменных

Рассмотренное выше объявление переменных называется явным.

VBA также поддерживает неявное объявление переменных. Под неявным объявлением подразумевается возможность использования переменной без ее объявления посредством инструкции Dim, Static, Private или Public. При первом обращении к такой переменной для нее автоматически выделяется память и происходит ее инициализация. Следует отметить, что все неявно объявленные переменные имеют тип Variant.


Еще от автора Алексей Анатольевич Гладкий
Компьютер для бухгалтера

Современного бухгалтера невозможно представить без компьютера. Но для уверенной работы нужно уметь пользоваться не только бухгалтерскими программами, но и многими другими. Здесь вы найдете много полезной информации, изложенной легким и доступным языком и подкрепленной большим количеством практических примеров, характерных именно для работы бухгалтера.


1С: Бухгалтерия 8.2. Понятный самоучитель для начинающих

Автоматизация бухгалтерского учета является одной из ключевых задач, стоящих перед руководством каждого предприятия. Время диктует свои условия, и уже давно дебет с кредитом вручную никто не сводит: такой учет громоздок, неповоротлив, медлителен, отличается трудоемкостью и изобилует ошибками. В этой книге мы будем рассматривать одно из наиболее популярных типовых решений системы 1С – конфигурацию «Бухгалтерия предприятия», реализованную на платформе 1С версии 8.2. Этот релиз является самым актуальным на момент написания данной книги.В результате изучения данной книги вы приобретете все необходимые знания для полноценной работы с программой «1С Бухгалтерия 8», научитесь выполнять в ней привычные бухгалтерские операции (работа с документами, формирование проводок, формирование отчетности и др.), самостоятельно создавать и подключать информационные базы, а также подготавливать программу к работе.


Как защитить компьютер от ошибок, вирусов, хакеров

Реалии сегодняшнего дня таковы, что для успешной работы на компьютере, и особенно – в Интернете, недостаточно просто иметь соответствующие навыки. В немаловажной степени результаты работы зависят от того, насколько хорошо пользователь умеет защищать свой компьютер и хранимую в нем информацию. Особую важность вопросы защиты данных приобретают в свете того, что современные мошенники постоянно совершенствуют свое «мастерство», и потеря бдительности может привести к весьма печальным последствиям.В книге подробно рассматриваются различного рода нештатные ситуации, которые могут возникать при работе на компьютере, анализируются причины их возникновения и даются советы и рекомендации по решению этих проблем.


1С: Управление торговлей 8.2. Понятный самоучитель для начинающих

Современные торговые предприятия предлагают своим клиентам широчайший ассортимент товаров, который исчисляется тысячами и десятками тысяч наименований. Причем многие позиции могут реализовываться на разных условиях: предоплата, отсрочка платежи, скидка, наценка, объем партии, и т.д. Клиенты зачастую делятся на категории – VIP-клиент, обычный клиент, постоянный клиент, мелкооптовый клиент, и т.д. Товарные позиции могут комплектоваться и разукомплектовываться, многие товары подлежат обязательной сертификации и гигиеническим исследованиям, некондиционные позиции необходимо списывать, на складах периодически должна проводиться инвентаризация, каждая компания должна иметь свою маркетинговую политику и т.д., вообщем – современное торговое предприятие представляет живой организм, находящийся в постоянном движении.Очевидно, что вся эта кипучая деятельность требует автоматизации.


1С: Бухгалтерия 8 с нуля. 100 уроков для начинающих

Книга содержит полное описание приемов и методов работы с программой 1С:Бухгалтерия 8. Рассматривается автоматизация всех основных участков бухгалтерии: учет наличных и безналичных денежных средств, основных средств и НМА, прихода и расхода товарно-материальных ценностей, зарплаты, производства. Описано, как вводить исходные данные, заполнять справочники и каталоги, работать с первичными документами, проводить их по учету, формировать разнообразные отчеты, выводить данные на печать, настраивать программу и использовать ее сервисные функции.


Если вас остановил инспектор. Ваши права-2008

Всегда надо помнить, что помимо многочисленных обязанностей водители имеют не менее многочисленные права. Их не следует забывать и рекомендуется использовать в различных неблагоприятных обстоятельствах. Из этой книги вы узнаете, как себя вести с инспектором ГИБДД и что делать, если его решение вам кажется неправомерным, какие действия нужно предпринимать при ДТП, что лучше страховать - свой автомобиль или гражданскую ответственность и многие другие полезные вещи.Вам не нужно больше копаться в многочисленных правовых актах и документах: все необходимое вы найдете здесь - вместе с анекдотами, шутками и хорошим настроением.В приложении приведена новая таблица штрафов.