Читаем VBA для чайников полностью

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

<p>По умолчанию переменные локальны</p>

Ключевое слово Private работает точно так же, как и Dim. Например, следующие два оператора объявления функционально идентичны:

Private strLouie As String

Dim strLouie As String

Ввиду того, что ключевые слова Private и Dim работают одинаково, вы можете вообще не использовать, например, Private. А можно использовать только Private, если вы хотите, чтобы это ключевое слово напоминало о том, что переменная достижима только в рамках данной процедуры или модуля.

<p>Глобальное знание</p>

Объявление переменной с помощью ключевого слова Public делает эту переменную доступной из любой части проекта. Например:

Public intUnclassifield As Integer

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

<p>Статическое состояние</p>

Ключевое слово Static в объявлении переменной следует использовать тогда, когда вы хотите, чтобы переменная оставалась в памяти, - для того чтобы использовать ее значение - даже когда процедура завершила свою работу. В следующем примере переменная intLasting Variable используется как счетчик числа вызовов данной процедуры:

Sub TransientProcedure( )

Dim strTransientVariable As String

Static intLastingVariable As Integer

strTransientVariable = Format(Now(), Medium Time)

int LastingVariable = intLastingVariable + 1

MsgBox Сейчас strTransientVariable . _

Эта процедура выполнялась

intLastingVariable раз ( а ).

End Sub

В этом примере оператор intLastingVariable = intLastingVariable + 1 увеличивает значение переменной на единицу при каждом выполнении процедуры. Если переменную intLastingVariable объявить ключевым словом Dim, а не Static, то в начале каждого выполнения процедуры эта переменная получала бы нулевое значение, что лишало бы процедуру всякого смысла вообще.

Объявлять переменные ключевым словом Static (статические переменные) можно только внутри процедур. Если вы хотите, чтобы все переменные в некоторой процедуре сохраняли свои значения (даже когда процедура не выполняется), поместите ключевое слово Static в объявление самой процедуры непосредственно перед ключевым словом, определяющим тип процедуры (т.е. перед Sub или Function), например;

Private Static Sub DoIt All ()

Static Function DontDoVeryMuch(intTimeToWaste As Integer)

Обратите внимание, если в объявлении процедуры присутствует задающее область видимости ключевое слово Private (или Public), то Static идет после него.

<p>Объявление нескольких переменных в одной строке</p>

В одной строке программного кода можно объявить и несколько переменных. Ключевое слово Dim печатается при этом только один раз, а переменные разделяются запятыми.

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

Dim intA As Integer, intD As Integer, intL As Integer

Смешивать различные типы данных тоже разрешается:

Dim curNetWorth As Currency, datSecondTuesday As Date

При объявлении нескольких переменных в одной строке возрастает вероятность случайного пропуска объявления типа данных. Для каждой из переменных в строке с пропущенным типом данных автоматически будет выбран тип Variant. Например, при обработке оператора

Dim strX, strY, strZ As String

strX и strY интерпретируются как переменные типа Variant, а не как строковые переменные.

<p>Размещение информации в переменных</p>

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

<p>Присваивание значений</p>

Значения переменным присваиваются с помощью обыкновенного знака равенства. Например, чтобы поместить число 3 в переменную с именем intC, напечатайте intC = 3

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

Перейти на страницу:

Все книги серии Для чайников

Похожие книги

1С: Бухгалтерия 8 с нуля
1С: Бухгалтерия 8 с нуля

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

Алексей Анатольевич Гладкий

Программирование, программы, базы данных / Программное обеспечение / Бухучет и аудит / Финансы и бизнес / Книги по IT / Словари и Энциклопедии
1С: Управление торговлей 8.2
1С: Управление торговлей 8.2

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

Алексей Анатольевич Гладкий

Финансы / Программирование, программы, базы данных