Глобальні змінні VBA Excel

Зазвичай ми оголошуємо будь-яку змінну, використовуючи слово DIM, і це найкращий прямий спосіб зробити це. Але змінні, задекларовані за допомогою DIM, можуть використовуватися лише в межах одного модуля. Якщо ми спробуємо використати цю змінну, визначену за допомогою DIM, вона буде застосована для модуля, під яким вона декларується. Що робити, якщо ми хочемо використовувати змінну в будь-якому модулі чи проекті? Що неможливо, якщо ми продовжимо використовувати DIM для визначення цієї змінної?

У цьому випадку у нас є вторинний варіант, визначаючи змінну за словом Global або Public у VBA. Глобальні або публічні змінні VBA - це ті змінні, які оголошуються на початку підкатегорії за допомогою опції явного. Незалежно від речей, які ми не робимо або не можемо зробити підкатегоріями, вони робляться до цього під опцією Явне.

Як оголосити глобальні змінні у VBA?

Нижче наведено різні приклади оголошення глобальної змінної в Excel за допомогою коду VBA.

Ви можете завантажити цей шаблон Excel з глобальних змінних VBA тут - Шаблон Excel з глобальних змінних VBA

Глобальні змінні VBA - приклад №1

У цьому прикладі ми побачимо, як різні підкатегорії можуть використовуватися як єдиний модуль, не використовуючи глобальне або публічне слово для визначення будь-якої змінної. Для цього нам знадобиться модуль.

  • Перейдіть до меню Вставка та натисніть на Модуль, як показано нижче.

  • Тепер введіть підкатегорію в будь-яку назву, як показано нижче.

Код:

 Sub Global_Variable () Кінець Sub 

  • Тепер використовуйте DIM для визначення будь-якого типу змінної. Тут ми вибрали алфавіт A як String .

Код:

 Sub Global_Variable () Dim A As String End Sub 

  • Тепер створіть іншу підкатегорію в тому ж модулі, як показано нижче.

Код:

 Sub Global_Variable () Dim A As String End Sub Sub Sub Global_Variable6 () End Sub 

  • Тепер у другій підкатегорії визначте іншу змінну B, використовуючи DIM як String.

Код:

 Sub Global_Variable () Dim A As String End Sub Sub Global_Variable6 () Dim B As String End Sub 

Як показано вище, обидві змінні A і B, визначені в обох підкатегоріях, не можуть бути використані в регіоні один одного. Вони застосовуються лише у власній підкатегорії.

  • Тепер, щоб зробити цю роботу, напишіть Option Explicit над першою підкатегорією, як показано нижче.

Код:

 Варіант Явний Sub Global_Variable () End Sub Sub Global_Variable6 () End Sub 

  • Тепер ми можемо визначити нашу змінну, яка буде використовуватися в обох підкатегоріях, які ми маємо нижче. Тож тепер розглянемо можливість написання будь-якої змінної сказати A як String за допомогою DIM.

Код:

 Варіант Явний Dim A As String Sub Global_Variable () End Sub Sub Global_Variable6 () End Sub 

Оскільки ми визначили змінну, всі підкатегорії будуть у цьому модулі, і це стосується всього коду цього модуля. І якщо ми спробуємо викликати змінні, визначені в цьому модулі, до якогось іншого модуля, то це дало б нам помилку.

Глобальні змінні VBA - приклад №2

У цьому прикладі ми побачимо, як використовувати глобальне або загальнодоступне слово для визначення будь-якої змінної у excel VBA. Для цього ми будемо використовувати код, який ми бачили в прикладі-1.

Ми будемо використовувати нижче частину коду для глобального або публічного оголошення змінної.

Код:

 Варіант Явний Sub Global_Variable () End Sub Sub Global_Variable6 () End Sub 

Як ми це робили в прикладі-1, де ми оголосили загальну змінну, яка буде використовуватися в обох підкатегоріях, нижче опції явного. У прикладі ми також оголосимо Глобальну змінну під опцією Явна.

Оскільки наш код вже готовий, ми можемо безпосередньо перейти до оголошення змінних за допомогою Global . Тепер у нижченаведеному Варіанті явного запису Global те саме, що ми звикли з DIM та вибираємо змінну за вибором. Тут ми вибираємо алфавіт А, як показано нижче.

Код:

 Варіант Явний Global A Sub Global_Variable () Dim A As String End Sub Sub Sub Global_Variable6 () Dim B As String End Sub 

Тепер ми вибираємо будь-який тип змінної. Як ми вже використовували String у наведеному вище прикладі, ми також використали б те саме, що і тут.

Код:

 Варіант Явний Global A як String Sub Global_Variable () Dim A As String End Sub Sub Sub Global_Variable6 () Dim B As String End Sub 

Це завершує наш глобальний процес декларування змінної. Тепер ми можемо використовувати це в будь-якому модулі, будь-якому проекті лише як String. Перш ніж ми скористаємося нею, видаліть раніше оголошену змінну, тоді код виглядатиме так, як показано нижче

Код:

 Варіант Явний Global A як String Sub Global_Variable () End Sub Sub Global_Variable6 () End Sub 

Тепер давайте призначимо деякий текст визначеній змінній A в обох підкатегоріях. Ми обираємо "Test1" і "Test2" для змінної A в обох підкатегоріях, як показано нижче. А також ми вибрали MsgBox, щоб показати значення, що зберігаються у змінній A.

Код:

 Варіант Явний Global A як String Sub Global_Variable () A = "Test1" MsgBox A End Sub Sub Global_Variable6 () A = "Test2" MsgBox A End Sub 

Тепер запустіть код, натиснувши клавішу F5 або натиснувши кнопку відтворення, щоб побачити результат.

Ми отримаємо повідомлення як "Test1", як показано вище. Це тому, що ми зберегли наш курсор у першій підкатегорії.

Тепер поставте курсор кудись у другу підкатегорію та запустіть код ще раз. Тепер ми отримаємо вікно з повідомленням "Test2", як показано нижче.

Ось так ми можемо створити та визначити змінну один раз за допомогою Global, яка може бути використана в будь-якому модулі, будь-якому класі та в будь-якому проекті. Ми можемо використовувати Public і замість Global, як показано нижче. І це дасть той самий результат, який ми отримали у використанні Global.

Код:

 Варіант Явний публічний A як String Sub Global_Variable () A = "Test1" MsgBox A End Sub Sub Global_Variable6 () A = "Test2" MsgBox A End Sub 

Плюси глобальної змінної VBA

  • Це економить час при оголошенні декількох змінних, коли нам відомо, що нам може знадобитися знову визначити один і той же тип змінної в різних модулях або підкатегоріях.
  • Використовуючи глобальний або загальнодоступний при визначенні змінного процесу, наш код стає меншим, заощаджуючи час та місця.
  • Це зменшує складність, коли ми пишемо величезний код і може заплутатися у використанні різних змінних у різних модулях чи підкатегоріях.

Мінуси глобальної змінної VBA

  • Якщо ми внесемо будь-які зміни до змінної Global, то ці зміни будуть впроваджені у всіх місцях, де вона використовується, що спричинить проблеми у функціональності написаного коду.

Що потрібно пам’ятати

  • Глобальне та загальнодоступне можна використовувати взаємозамінно з однаковими функціоналами.
  • Якщо ми не хочемо використовувати глобальну змінну, то ми можемо слідувати процесу, як показано в прикладі-1 для визначення змінної. Але це обмежилося б одним модулем.
  • Глобальні змінні можуть використовуватися в будь-якому модулі, будь-якій підкатегорії, будь-якому класі або в будь-якому проекті.
  • Глобальна змінна дає висновок коду, де ми зберегли курсор. Він не запустить повний код за один раз, даючи весь вихід один за одним.

Рекомендовані статті

Це посібник з глобальних змінних VBA. Тут ми обговорюємо, як оголосити глобальні змінні в Excel за допомогою коду VBA разом з деякими практичними прикладами та шаблоном Excel, який можна завантажити. Ви також можете ознайомитися з іншими запропонованими нами статтями -

  1. VBA UserForm
  2. Розв’яжіть рівняння в Excel
  3. VBA Активувати лист
  4. Як редагувати випадаючий список в Excel?

Категорія: