Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Вивчайте Variables and Data Types | Основи VBA
Excel VBA для автоматизації бізнесу

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 означає, що якщо бізнес-правило зміниться, ви зміните лише один рядок, а не шукатимете всі місця у коді.

Завдання

  1. У файлі Section_2_VBA_Fundamentals.xlsm створити процедуру Sub, яка оголошує змінну типу String для назви продукту, Double для його ціни та Integer для залишку на складі.
  2. Присвоїти їм значення для USB-C Hub, ввівши ці значення вручну.
  3. Використати MsgBox для відображення всіх трьох значень в одному повідомленні, об'єднавши їх у рядок.
  4. Додати Const LOW_STOCK As Integer = 20 над вашою процедурою Sub і використати цю константу в MsgBox для порівняння із змінною залишку на складі.
Підказка
expand arrow
  1. Потрібно три рядки з Dim для різних типів — зверніться до рисунка 2.1, якщо забули синтаксис: Dim name As Type.
  2. Для USB-C Hub ціна — 39.50, залишок — 44. Просто присвойте ці значення напряму: price = 39.50.
  3. Для об'єднання рядків використовуйте &, а не +. Формуйте рядок по частинах: "Name: " & productName & ", Price: " & price.
  4. Константи оголошуються поза будь-якою процедурою Sub, на початку модуля, одразу після Option Explicit. Порівнюйте stockCount з LOW_STOCK за допомогою простого > або < у рядку для MsgBox — умовний оператор If поки не потрібен, просто виведіть обидва значення для візуального порівняння.
Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 2. Розділ 1

Запитати АІ

expand

Запитати АІ

ChatGPT

Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат

Секція 2. Розділ 1
some-alt