Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
курсовая / Источники / excel_2010_professionalnoe_programmirovanie_na_vba_RuLit_Me_412629.pdf
Скачиваний:
4
Добавлен:
27.09.2025
Размер:
22.97 Mб
Скачать

Глава 8. Основы программирования на VBA

223

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

Переменные s ta tic

Переменные S t a t i c — особый случай. Они объявляются на уровне процедуры и со­ храняют свои значения после нормального завершения процедуры. Но если выполнение процедуры прерывается с помощью оператора End, статические переменные теряют свои значения.

Объявление статических переменных осуществляется с помощью ключевого слова S tatic.

Sub MySub ()

S ta tic C ounter as In te g e r

' - [Здесь находится код процедуры] - End Sub

Правила именования переменных

Некоторые программисты называют переменные так, что типы данных легко опре­ делить по одному только названию. Однако такой прием усложняет восприятие кода.

Распространенное правило именования связано с использованием стандартной приставки в нижнем регистре в названии переменной. Например, булеву переменную, которая контролирует сохранение рабочей книги, можно назвать bWasSaved. Это пе­ ременная типа Boolean. В следующей таблице перечислены стандартные префиксы для некоторых типов данных.

Типданных

Префикс

Boolean

b

Integer

i

Long

1

Single

s

Double

d

Currency „

с

Date/Time

d t

String

s t r

Object

obj

Variant

V

Пользовательский

u

Работа с константами

Значение переменной может изменяться при выполнении процедуры (часто так и случается, поэтому она и называется “переменной”). Иногда же необходимо использо­ вать именованное значение или строку, которая никогда не изменяется, — константу.

Использование констант в программе вместо строго запрограммированных значений или строк — удачный прием программирования. Например, если процедура несколько раз ссылается на определенное значение, например на процентную ставку, следует объя­ вить это значение как константу и использовать в выражениях имя константы, а не ее значение. Такой прием не только делает программу более удобной для восприятия, но и облегчает последующее изменение кода — достаточно изменить только одну инструк­ цию, а не несколько.

224 Часть III. Visual Basic for Applications

Объявление констант

Для объявления констант используется оператор C o n st. Ниже приведено несколько примеров.

Const

NumQuarters as

In te g e r

=

4

 

Const

Rate =

.0725,

P e rio d

=

12

 

 

Const

ModName

as S trin g

=

"Budget

M acros"

P u b lic

Const

AppName

as

S trin g

=

"Budget A p p lic a tio n "

Во втором примере тип данных не объявлен. Следовательно, VBA определяет тип данных на основе их значений. Переменная Rate имеет тип данных D o u b le , а перемен­ ная P e r io d In te g e r . Так как константы никогда не изменяют своего значения, обычно их объявляют в виде конкретного типа данных.

Как и переменные, константы имеют область действия. Если требуется, чтобы кон­ станта была доступна только в одной процедуре, объявите ее после оператора Sub или F u n c tio n — и она станет локальной. Вы сделаете константу доступной для всех проце­ дур в модуле, если объявите ее перед первой процедурой модуля. Чтобы сделать кон­ станту доступной для всех модулей рабочей книги, используйте ключевое слово P u b lic и объявите константу перед первой процедурой модуля.

P u b lic Const In te re s tR a te As Double = 0.0725

Примечание

При попытке изменения значения константы в коде VBA вы получите сооб­ щение об ошибке (чего и следовало ожидать). Константа — это постоянное значение, а не переменная.

Использование предопределенных констант

В Excel и VBA существует целый ряд предопределенных констант, которые можно использовать без объявления. Вам даже необязательно знать значение этих констант для их применения. При записи макросов обычно используются константы, а не значения. В следующей процедуре для изменения ориентации страницы активного листа на аль­ бомную применена встроенная константа (xl L an ds cape).

Sub

S etToLandscape()

 

A c tiv e S h e e t. PageSetup. O r ie n ta tio n = xlLandscape

End

Sub

Справочные сведения о константе x lL a n d s c a p e можно найти в справочной систе­ ме. Кроме того, если у вас включен параметр AutoList Members (Автоматическая встав­ ка объектов), то вы можете получить помощь непосредственно при вводе кода (рис. 8.2). Во многих случаях VBA автоматически перечисляет все константы, присваиваемые оп­ ределенному свойству.

Фактическое значение переменной x lL a n d s c a p e равно 2. Еще одна встроенная кон­ станта для изменения ориентации страницы — x l P o r t r a i t — имеет значение 1. Очевид­ но, что при использовании встроенных констант необязательно знать их значения.

Примечание

Окно Object Browser, которое будет рассмотрено в главе 7, содержит список всех констант Excel и VBA. Чтобы открыть Object Browser в VBE, нажмите клавишу <F2>.