“Видимість” змінних

Оголошувати змінні можна в самих різних місцях:

Всередині процедури (або функції). У цьому випадку змінну буде “видно” тільки в коді цієї процедури (або функції). Якщо Ви спробуєте звернутися до такої змінної всередині коду іншої процедури, то 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 - скрізь.

Відмінність спостерігається тільки в способі доступу до змінної. Тут не обов’язково вказувати ім’я модуля перед такою змінною. Можна просто вказати її ім’я – і цього буде достатньо. Хоча я не рекомендую цього робити, тому що втрачається наочність. І, до того ж, якщо у Вас є два модулі, у яких оголошені змінні з однаковими іменами, то добратися до них можна буде тільки вказавши ім’я відповідного модуля перед ім’ям змінної.