Книга: VBA для чайников
Статическое состояние
Статическое состояние
Ключевое слово 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 идет после него.
- Статическое связывание как оптимизация
- Кнопка под другим именем: когда статическое связывание ошибочно
- Статическое выделение памяти в стеке
- 6.3.4. Применение последующих версий Комментария (статическое и динамическое толкование)
- Статическое тестирование безопасности в компании Twitter (2009 г.)
- Что нужно для того, чтобы компьютер проработал долго и надежно
- Глобальное знание
- Статические члены
- 3.2. Выделение памяти
- Глава 11 Управление памятью
- О серии ХР
- 6.3. Модельная Конвенция ОЭСР и Комментарий к ней как источник толкования налоговых соглашений