ее следует объявлять с использованием ключевого слово Public
такие переменные называются глобальными.
Вот так по понятней:
"Видимость" переменных:
Объявлять переменные можно в самых разных местах:
Внутри процедуры (или функции). В этом случае переменная будет "видна" только в коде этой процедуры (или функции). Если вы попытаетесь обратиться к такой переменной внутри кода другой процедуры, то Visual Basic сгенерирует ошибку.
В самом верху кода формы, т.е. сразу после оператора Option Explicit. Это место называется разделом General Declarations (раздел Глобальных Объявлений). Такие переменные будет "видны" в любом месте кода формы. Т.е. в любой процедуре (или функции) формы. Переменные в данном месте могут быть объявлены с помощью зарезервированных слов Private и Public. Рассмотрим 3 определения:
Dim myLocalVar1 As Byte
Private myLocalVar2 As Integer
Public myGlobalVar1 As Long
Первые 2 определения абсолютно эквивалентны. Переменные объявленные таким образом будут видны в любом месте кода формы. Но только той формы, где они объявлены. В других формах обратиться к таким переменным будет нельзя.
Третья переменная будет видна всему приложению в любом месте. Правда, чтобы добраться к такой переменной из кода другой формы, необходимо перед именем переменной указать ещё и имя формы, где эта переменная объявлена, например:
Form1.myGlobalVar1 = 234
В разделе General Declarations модуля. Здесь действуют те же правила, что и в разделе General Declarations формы. Private (или Dim) будут "видны" только в коде модуля. А Public - везде. Отличие наблюдается только в способе доступа к переменной. Здесь не обязательно указывать имя модуля перед такой переменной. Можно просто указать её имя и всё. Хотя я не рекомендую этого делать, т.к. теряется наглядность. И, к тому же, если у вас 2 модуля, в которых объявлены переменные с одинаковыми именами, то добраться к ним можно только указав имя соответствующего модуля перед именем переменной.
Когда переменная объявляется Dim - это означает, что область ее
использования будет только та процедура в которой она была описана,
такие переменные называются локальные, после выполнения процедуры их
значения будут потеряны.
Когда объявляешь Static, переменная тоже будет локальной, но после
выполнения процедуры значение не будет потеряно.
Если нужно чтобы переменная была доступна в нескольких процедурах
одного модуля, следует использовать оператор Private.
Причем объявлять следует в разделе Declarations(в самом верху формы,
где Option Explicit).
Ну а если неоюходима переменная, чтобы она была доступна всем модулям
данного приложения, ее объявляют с использованием Public - глобальная
(открытая), так же описываются в разделе Declarations.
Нет Public действует только на одну из форм приложения! Другим формам они не доступны!
Переменные это так к слову! Самое главное массивы с функциями постоянно не дублировать! Если, что речь про ВБ.НЕТ идёт!
Option Explicit
Private Sub Form_Load()
a = 1 'а здесь все будет рульно
b = 2 'Вот тут будет ошибка
c = 3 'и тут
Label1 = a
Label2 = b
Label3 = c
End Sub
Модуль:
Option Explicit
Public a As Byte
Private b As Byte
Dim c As Byte
root спасибо! за Option Explicit
полазил в MSDN подумал, в чачало формы записал Option Explicit Off-и все проблемы решились!
слушай, а ты, что на ВБ6 пишешь?