“Видимість” змінних
Оголошувати змінні можна в самих різних місцях:
Всередині процедури (або функції). У цьому випадку змінну буде “видно” тільки в коді цієї процедури (або функції). Якщо Ви спробуєте звернутися до такої змінної всередині коду іншої процедури, то Visual Basic згенерує помилку.
В самому верху коду форми. Це місце називається розділом General Declarations (розділ Глобальних Оголошень). Такі змінні буде “видно” у будь-якому місці коду форми. Тобто у будь-якій процедурі (або функції) форми.
Змінні в даному місці можуть бути оголошені за допомогою зарезервованих слів Private і Public.
Розглянемо три визначення:
Dim myLocalVar1 As Byte
Private myLocalVar2 As Integer
Public myGlobalVar1 As Long
Перші два визначення абсолютно еквівалентні. Змінні оголошені в такий спосіб будуть видимі в будь-якому місці коду форми. Але тільки тієї форми, де вони оголошені. В інших формах звернутися до таких змінних не можна.
Третя змінна буде видима всьому додаткові в будь-якому місці. Правда, щоб добратися до такої змінної з коду іншої форми, необхідно перед ім’ям змінної вказати ще й ім’я форми, де ця змінна оголошена, наприклад:
Form1.myGlobalVar1 = 234
У розділі General Declarations модуля. Тут діють ті ж правила, що й у розділі General Declarations форми. Private (або Dim) будуть “видимі” тільки в коді модуля. А Public - скрізь.
Відмінність спостерігається тільки в способі доступу до змінної. Тут не обов’язково вказувати ім’я модуля перед такою змінною. Можна просто вказати її ім’я – і цього буде достатньо. Хоча я не рекомендую цього робити, тому що втрачається наочність. І, до того ж, якщо у Вас є два модулі, у яких оголошені змінні з однаковими іменами, то добратися до них можна буде тільки вказавши ім’я відповідного модуля перед ім’ям змінної.