Стів Каммінгс - vba для чайників - стор 33

В одному рядку програмного коду можна оголосити і кілька змінних. Ключове слово Dim друкується при цьому тільки один раз, а змінні розділяються комами.

Dim intA As Integer, intD As Integer, intL As Integer

Змішувати різні типи даних теж дозволяється:

Dim curNetWorth As Currency, datSecondTuesday As Date

Dim strX, strY, strZ As String

strX і strY інтерпретуються як змінні типу Variant, а не як рядкові змінні.

Розміщення інформації в змінних

Після того як змінна оголошена, першим кроком в її використанні зазвичай буває наповнення її інформацією (перше розміщення інформації в змінної називається ініціалізацією змінної). Щоб помістити інформацію в змінну, потрібно привласнити значення інформації цієї змінної. Як тільки знадобиться, можна замінити дані, що зберігаються в змінної, присвоївши їй інше значення.

Присвоєння значень

Значення змінним присвоюються за допомогою звичайного знака рівності. Наприклад, щоб помістити число 3 в змінну з ім'ям intC, надрукуйте intC = 3

У VBA оператор присвоювання є пов'язану знаком рівності конструкцію, зі змінною зліва від нього і виразом, що визначає значення змінної, праворуч. У наведеному вище прикладі вираз являє собою просто число 3. Такі явно зазначені значення називаються буквальними значеннями. (Вирази будуть обговорюватися нижче, в розділі Виражений-і-я.)

Погляньте на наступний оператор присвоювання:

strQuot e = Не питай, що я зробив для країни - _

запитай про те, що країна зробила для мене.

В даному випадку оператор привласнює текст праворуч від знака рівності змінної strQuot e. Як і раніше, інформація у вхідному в цей оператор вираженні являє собою буквальні значення - реальний текст, що поміщається в змінну. Але оператор розбитий на два рядки, тому і текстове вираження розбите на дві окремі рядки. Знак (амперсанд) дає вказівку VBA з'єднати ці рядки разом.

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

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

Ясно, що до моменту реального виконання оператора присвоювання його твердження не є фактом. В математиці рівністю 2 + 2 = 4 насправді стверджується, що значення ліворуч від знака рівності дорівнює значенню справа.

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

Використання змінних в операторах присвоювання

Можна привласнювати змінним не тільки буквальні значення - точно так само можна привласнювати і значення, які визначаються іншими змінними. В операторі curSalePrice = curCost * sngMargin змінної curSalePrice присвоюється значення, яке дорівнює добутку змінних curCost і sngMargin. В даному випадку вираз складається з змінних, а не з буквальних значень. VBA обчислює результат на основі значень, що зберігаються в цих змінних. (До речі, в повній відповідності з рекомендованими в главі 6 угодами щодо вибору імен, curSalePrice і curCost є змінними типу Currency.)

Використання функцій в операторах присвоювання

Оскільки функції і створювані вами процедури типу Function повертають значення, їх теж можна використовувати в операторах присвоювання. наприклад:

ctrFavorite = InputBox (Хто сьогодні фаворит?)

В даному випадку використовується функція VBA Input Box, яка відображає на екрані невелике діалогове вікно з вказаним повідомленням і полем для введення відповіді користувачем. Ця відповідь і буде повертається функцією значенням, що представляє собою рядок тексту (функція Input Box розглядається докладно в главі 11).

Виражений-й-я

* Змінні (наприклад, bytMonth або boolWinter);

* Буквальні значення (наприклад, 1234 або Це тільки приклад);

* Константи (вони призначені для зберігання буквальних значень і розглядають; ся в розділі 'Робота з постійними значеннями);

* Функції VBA (наприклад, Input Box () або Sqr ());

* Процедури типу Function.

Якщо у виразі не менш двох таких елементів, то вони повинні бути пов'язані або знаками операцій (до таких належить, наприклад, знак +), або функціями і процедурами типу Function, вкладеними всередину інших функцій і процедур типу Function.

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

Що містить змінна перед тим, як їй присвоюється значення?

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

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

Ось які значення зберігаються в змінних перед тим, як ви їм привласнюєте свої значення.

Ніщо (спеціальне значення, яке вказує на те, що змінної не присвоєно ніякого посилання на об'єкт)

Робота з постійними значеннями

Const cstrPetsName As String = "Пушок"

Const cboolUp As Boolean = True

Зверніть увагу, що імена оголошених мною констант починаються з малої літери "с" (що означає скорочення від constant - константа). Таким чином, на ім'я відразу видно, що це константа, а не змінна. Якщо вас цей префікс не влаштовує, виберіть для своїх констант інший, більш відповідний вам.

Ви можете взяти приклад VBA і Visual Basic і префікс, що відповідає вашому імені, або префікс, який міститься в імені вашого VBA-проекту. VBA і Visual Basic ідентифікують константи за допомогою префікса vb - наприклад vbBl ue (константа, що представляє числовий код для синього кольору, а саме 16711680) або vbKeyTab (константа, що представляє числовий код клавіші , а саме 9). VBA додатки часто ідентифікують свої константи за допомогою префікса, специфічного для цього додатка, наприклад xlBarStacked (константа, що представляє числовий код для лінійчатої діаграми в Excel, а саме 58).

До речі, константи, певні VBA або VBA-додатком, теж можна використовувати в своїх програмах. Інформацію про ці зарезервованих константи можна отримати з довідкової системи або у вікні оглядача об'єктів (див. Розділ 5).

Схожі статті