Дивлячись на попередній приклад, Ви, ймовірно, подумали: «Навіщо ж взагалі потрібні змінні?» Перш за все, вони полегшують написання програми, особливо коли Вам доводиться використовувати деяке значення кілька разів. Припустимо, Вам потрібно присвоїти осередкам діапазону A1 другого, третього і четвертого аркушів значення, що міститься в цій же комірці першого аркуша. Ось як буде виглядати програма без змінних:
Застосуйте змінну, і програма стане коротшим (по числу символів) і зрозуміліше:
Змінні не тільки скоротять код і зроблять його більш читабельним. Вони ще й прискорять його виконання. Програма ІспользованіеПеременной, наприклад, працює швидше, ніж ЗадатьЗначенія. Про швидкість ми Вам розповімо трохи пізніше, а поки лише запам'ятайте, що будь-яке звернення до об'єкту, методом або властивості вимагає від Excel певних дій і тому займає деякий час. У програмі ЗадатьЗначеніяколічество таких звернень можна визначити за кількістю точок в інструкціях. У рядках з другої по четверту вони використані 12 разів, по чотири в кожному рядку. У рядках 3-6 програми ІспользованіеПеременнойточка зустрічається 8 разів, по дві на рядок. Припустимо, що на обробку кожної точки потрібно одне і те ж час, тоді, підрахувавши, отримаємо, що програма ІспользованіеПеременнойвиполняется за 2/3 часу, що витрачається на роботу ЗадатьЗначенія. Так все йде і в дійсності. Звичайно, для таких коротких прикладів відмінність в швидкостях помітити неможливо, але в довгих і складних додатках різниця стає вельми відчутною.
Об'єктна змінна використовується для посилання на об'єкт. Коли Ви гарненько розберетеся в мові VBA, то зрозумієте неоціненну користь таких змінних: вони дозволяють істотно скоротити тексти програм. Код, написаний з їх допомогою, легше читається і набагато швидше виконується. Приклади на кількох наступних сторінках наочно це демонструють.
Set Range1 = Worksheets (1) .Range ( "A1")
Set Ключове слово для надання значення об'єктної змінної
Range1 Ім'я змінної
Worksheets (l) .Range ( "A1") Об'єкт, який присвоюється змінної
Розглянемо на прикладі, що можна робити зі змінною типу Object. Задамо за допомогою змінних Object і Integer властивість Value об'єкта Range. яке потім відображується в інформаційному вікні.
Sub Об'єктна змінна ()
Dim Range1 As Object
Set Range1 = Worksheets (1) .Range ( "A1")