SBP-Program

діліться своїми знаннями тут

f

tw

in

Мова VBA

Мова VBA

Мова VBA досить простий. Нижче наводиться короткий курс мови VBA. Абревіатура VBA означає Visual Basic for Applications, тобто Visual Basic для додатків.

Оголошення змінних у VBA

Приклад оголошення локальної змінної у VBA:

Dim intVar As Integer

тут оголошена локальна, тобто видима в межах функції, змінна типу Integer.

Приклад оголошення глобальної змінної у VBA:

Public intVar As Integer

така перемнная доступна з свого та інших модулів.

Приклад оголошення змінної, видимою тільки у своєму модулі:

Private intVar As Integer

Приклад оголошення статичної змінної у VBA:

Dim Статичний intVar As Integer

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

Особливість оголошення змінних у VBA полягає в тому, що змінну можна і не оголошувати, але використовувати. Тип таких змінних - Variant. Але рекомендується оголошувати змінні, вказувати їх тип, а не використовувати тип Variant.

Константи в VBA

Константи в VBA оголошують з допомогою Const:

Const intValue As Integer = 1234

Константам присвоюється значення при їх оголошенні.

Масиви в VBA

Приклад оголошення масиву в VBA:

Dim intArray(0 To 5) As Integer

оголошений масив типу Integer, індекси елементів змінюються від нуля до п'яти.

Багатовимірні масиви в VBA

Приклад двовимірного масиву в VBA:

Dim intArray(від 0 До 5, 0 To 2) As Integer

Динамічні масиви в VBA

Динамічні масиви можуть змінювати свій розмір. Оголошення динамічного масиву:

Dim intArray() As Integer

тут розмір масиву не вказано. Але перед використанням такого масиву слід оголосити його розмір:

ReDim intArray(5)

Можна і змінити його розмір після попереднього визначення:

ReDim intArray(15)

Процедури VBA

Приклад оголошення процедури VBA:

Public Sub aProcedure(ByVal intA As Integer, ByRef lngSqr As Long)
     lngSqr = інта * інта
End Sub

У цьому прикладі оголошена процедура, видима з усіх модулів, на це вказує слово Public, яка приймає два параметри: інта за значенням, на це вказує ключове слово ByVal, і параметр lngSqr за посиланням, на це вказує ключове слово ByRef. Ключове слово-Під каже, що оголошена процедура.

За замовчуванням аргументи передаються до процедури по посиланню.

Функції в VBA

Функції відрізняються від процедур тим, що повертають значення. Приклад функції в VBA:

Public Function lngFunc(ByVal intA As Integer) As Long
     lngFunc = інта * інта
End Sub

Для завдання функції використовуємо ключове слово Function, після списку аргументів вказуємо тип значення, що повертається. Рядок

lngFunc = інта * інта

повертає значення даної функції, зліва - ім'я функції, в даному випадку воно відіграє роль return.

Перша програма VBA

Відкрийте Excel, у рядку меню вікна Excel виберете Сервіс - > Макрос - > Редактор Visual Basic. Відкриється вікно редактора, воно називається Microsoft Visual Basic. У вікні Project - VBA Project двічі клікаємо по Лист1. Вводимо код:

Public Sub aMessage()
     MsgBox ("It is my first VBA program.")
End Sub

Далі Debug - > Compile VBA Project. Якщо немає помилок, то запускаємо нашу програму: Run - > Run Sub/UserForm.

Бачимо таку картину: VBA

Якщо у вас так вийшло, то це означає, що найважче позаду і дуже скоро ви освоїте VBA остаточно.

Використання функцій VBA

Зробимо програму з використанням функцій. Нагадаю, що функція - це процедура, яка повертає значення. Нехай наша програма зводить ціле число в квадрат. Код VBA:

Public Function lngSqr(ByVal intVal As Integer) As Long
     lngSqr = intVal * intVal
End Sub

Public Sub calculate()
     lngSqr = intVal * intVal
     Dim intVar As Integer
     Dim lngResult As Long
     intVar = 5
     lngResult = lngSqr(intVar)
     MsgBox ("The result is " & lngResult)
End Sub

Отримуємо: VBA