Типи макросів
Макроси бувають двох типів: підпрограми та функції - VBA-підпрограми та VBA-функції.
Загальний вигляд функції користувача:
Function имя_функции(список параметрів)
Тіло функції складається з описової частини блоку операторів, що виконуються один за одним. Ім'ям функції або змінної може бути будь-який ідентифікатор, визначений користувачем. Ідентифікатор – це послідовність літер, цифр та символу підкреслення, що починається з літери. Пробіли всередині ідентифікатора неприпустимі, тому замінюються символом підкреслення.
Носієм функції користувача, що повертається, є ім'я функції. Тому в тілі функції користувача, що обчислює деяке значення, повинен бути принаймні один оператор, який надає імені функції значення будь-якого виразу.
Підпрограми мають стандартне оформлення і розміщуються на аркуші модуля там, де функції користувача.
Sub ім'я_підпрограми (список_параметрів)
Підпрограма, як і функція, може повертати значення, які присвоюються параметрам всередині підпрограми. На відміну від функцій, підпрограми не можна викликати з осередків робочого листа.
Інструкції присвоєння
Інструкції присвоєння надають вираз змінній чи константі. Інструкції надання завжди включають знак рівності (=).
Алгоритм роботи оператора наступний: спочатку обчислюється значення виразу, що стоїть у правій частині знака рівності, та був результат присвоюється змінної, що у лівої частини від знака рівності.
Організація розгалужень. Інструкція If. Then. Else
Інструкція If. Then. Else виконує певні вказівки або набори вказівок залежно від значення умови. Допускаються багаторазово вкладеніінструкції If. Then. Else, що мають стільки рівнів вкладення, скільки потрібно. Однак для полегшення читання програми замість багаторазово вкладених інструкцій If. Then. Else іноді краще використовувати інструкцію Select Case.
If умова Then [інструкції] [Else інструкції_else]
Умова – це вираз логічного типу. Результат обчислення умови завжди має булівський тип. Вираз може бути простим та складним. Під час запису умов можуть використовуватися всі можливі операції відносини.
Складні умови утворюються із простих шляхом застосування логічних операцій та круглих дужок.
NOT логічне заперечення
AND - логічне І
OR – логічне АБО
Допускається також використання блокової форми синтаксису:
If умова Then
Гілка Else є необов'язковою.
Синтаксис вкладеної блокової форми:
If умова_1 Then
ElseIf умова-2 Then
elseif умова_3 Then
Просту однорядкову форму рекомендується використовувати для коротких перевірок. Однак блокова форма забезпечує більш структурований підхід та більшу гнучкість порівняно з однорядковою формою. Блокова форма зазвичай простіше для читання, обробки та налагодження.
Інструкція Select Case
Виконує одну з кількох груп інструкцій, залежно від значення виразу. Синтаксис:
Select Case вираз
Синтаксис інструкції Select Case містить такі елементи:
Обов'язковий. Будь-яке числове вираз або рядковий вираз.
Обов'язковий за наявності пропозиції Case. Список з роздільниками, що складається з однієї або декількох форм наступного виду: вираз, вираз To вираз, Is оператор Порівняння вираз. Ключове слово To визначає діапазон значень. Привикористання ключового слова To перед ним має бути меншим. Ключове слово Is з операторами порівняння (крім Is та Like) задає діапазон значень. Якщо ключове слово Is не вказано, воно вставляється за промовчанням.
Необов'язковий. Одна або кілька інструкцій, які виконуються в тому випадку, якщо вираз збігається з будь-яким компонентом списку Виразів-n.
Необов'язковий. Одна або кілька інструкцій, що виконуються в тому випадку, якщо вираз не збігається з жодною з пропозицій Case.
У кожному реченні Case допускається використання кількох виразів чи діапазонів. Наприклад, допустимий наступний рядок:
Case 1 To 4, 7 To 9, 11, 13, Is > MaxNumber
Є також можливість встановити діапазони або кілька виразів для рядкових значень.
Інструкція Select Case може бути альтернативою інструкції ElseIf в If. Then. Else при оцінці одного виразу, який має кілька можливих значень.