Вход/Регистрация
VBA для чайников
вернуться

Каммингс Стив

Шрифт:

Наверное, к этому моменту я вас уже убедил, что оператор Option Explicit должен присутствовать в каждом создаваемым вами модуле. Но если это так, то зачем этот оператор печатать каждый раз вручную? Это делать совсем не обязательно. Выберите Tools=Options из меню и в появившемся диалоговом окне Options (Параметры) на вкладке Editor (Редактор) установите флажок Require Variable Declaration (Требовать объявление переменных). После этого редактор Visual Basic будет автоматически вставлять оператор Option Explicit в каждый новый модуль. В старые модули, где такого оператора не было, вам придется впечатать его самим.

Задание области видимости переменной

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

* места объявления переменной (либо внутри процедуры, либо в разделе объявлений модуля; см. выше раздел Где объявлять переменные);

* ключевого слова, использованного в объявлении переменной (Dim, Public, Private или Static ).

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

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

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

Private strLouie As String

Dim strLouie As String

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

Глобальное знание

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

Public intUnclassifield As Integer

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

Статическое состояние

Ключевое слово 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 идет после него.

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

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

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

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

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

  • Читать дальше
  • 1
  • ...
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • ...

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

Подпишитесь на рассылку: