Variables and Data Types
Свайпніть щоб показати меню
Кожна процедура, яку ви пишете, потребує місця для зберігання значень під час виконання — наприклад, імені клієнта, поточного підсумку, прапорця так/ні. Це і є змінна: підписана коробка в пам'яті, куди можна помістити значення і зчитати його пізніше. Ви створюєте її за допомогою Dim (скорочено від "dimension") і одразу вказуєте VBA, який тип даних вона міститиме:
Dim productName As String
Dim currentStock As Integer
Dim unitPrice As Double
Кожен рядок резервує підписане місце: productName може містити лише текст, currentStock — лише цілі числа, unitPrice — лише числа з десятковими. Оголошення типу наперед — це не формальність, а спосіб дозволити VBA виявляти помилки до того, як вони стануть багами. Якщо спробувати виконати productName = 47, VBA одразу зупинить вас із помилкою невідповідності типів, замість того щоб тихо зберегти неправильне значення і викликати плутанину пізніше.
Поширені типи даних
Правило: використовуйте Long замість Integer для лічильників і номерів рядків — у сучасному Excel це не повільніше, і не виникне переповнення на великих наборах даних. Ви часто побачите Dim i As Long у цьому курсі.
Option Explicit
Розміщуйте цей рядок на самому початку кожного модуля, перед будь-яким Sub. Він змінює одне: VBA тепер відмовиться виконувати будь-який рядок, у якому використовується змінна, не оголошена через Dim:
Option Explicit
Sub Example()
Dim total As Double
total = 100 ' works — declared above
toatl = 200 ' typo — Option Explicit catches this at compile time
End Sub
Без Option Explicit ця помилка створює нову змінну з назвою toatl, і ви витратите двадцять хвилин, з'ясовуючи, чому total не змінюється. Ця проста звичка запобігає більшості помилок у цьому розділі.
Константи
Константи — це іменовані значення, які не змінюються під час виконання коду. Ідеально підходять для таких речей, як податкові ставки чи порогові значення:
Const REORDER_THRESHOLD As Integer = 20
Використання REORDER_THRESHOLD замість багаторазового введення 20 означає, що якщо бізнес-правило зміниться, ви зміните лише один рядок, а не шукатимете всі місця у коді.
Завдання
- У файлі
Section_2_VBA_Fundamentals.xlsmстворити процедуруSub, яка оголошує змінну типуStringдля назви продукту,Doubleдля його ціни таIntegerдля залишку на складі. - Присвоїти їм значення для
USB-C Hub, ввівши ці значення вручну. - Використати
MsgBoxдля відображення всіх трьох значень в одному повідомленні, об'єднавши їх у рядок. - Додати
Const LOW_STOCK As Integer = 20над вашою процедуроюSubі використати цю константу вMsgBoxдля порівняння із змінною залишку на складі.
- Потрібно три рядки з
Dimдля різних типів — зверніться до рисунка 2.1, якщо забули синтаксис:Dim name As Type. - Для USB-C Hub ціна — 39.50, залишок — 44. Просто присвойте ці значення напряму:
price = 39.50. - Для об'єднання рядків використовуйте
&, а не+. Формуйте рядок по частинах:"Name: " & productName & ", Price: " & price. - Константи оголошуються поза будь-якою процедурою
Sub, на початку модуля, одразу післяOption Explicit. ПорівнюйтеstockCountзLOW_STOCKза допомогою простого>або<у рядку дляMsgBox— умовний операторIfпоки не потрібен, просто виведіть обидва значення для візуального порівняння.
Дякуємо за ваш відгук!
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат