Типи даних користувача VBA

Типи даних, визначені користувачем VBA. Урок №16

Мова VBA дозволяє створювати власні типи даних. Робиться це за допомогою заяви Type (Type … End Type).

Типи даних, визначені користувачем, можуть містити один або кілька елементів типів даних, масив або попередньо визначені користувачем типи.

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

Приклад оголошення типу даних користувача

Type Employees
PerNumber As Integer
Surname As String
Name As String
MiddleName As String
Salary As Currency
Address As String
End Type

В цьому прикладі, ми оголосили новий тип даних користувача – Employees. Він складається з:

  • цілого значення – PerNumber;
  • чотирьох рядкових значень – Surname, Name, MiddleName, Address;
  • значення типу Currency – Salary.

Після оголошення, користувальницький тип даних стає доступним для визначення змінних і масивів. Щоб оголосити змінну користувацького типу можна використовувати оператори Dim, Public або Private.

Щоб отримати доступ до елемента, який входить до складу типу даних користувача, необхідно ідентифікувати цей елемент. Для цього потрібно:

  1. Вказати ім'я змінної.
  2. Після змінної поставити крапку.
  3. Після крапки вказати ім'я необхідного елемента.

Приклад отримання доступу до елементів користувцького типу даних

Type Employees
    PerNumber As Integer
    Surname As String
    Name As String
    MiddleName As String
    Salary As Currency
    Address As String
End Type
Sub myVar()
    Dim Mechanic As Employees
        Mechanic.PerNumber = 1
        Mechanic.Surname = "Іванов"
        Mechanic.Name = "Іван"
        Mechanic.MiddleName = "Іванович"
        Mechanic.Salary = 28000
        Mechanic.Address = "м. Київ, вул. Гійома де Боплана, 2"
        
    MsgBox Mechanic.PerNumber
    MsgBox Mechanic.Surname
    MsgBox Mechanic.Name
    MsgBox Mechanic.MiddleName
    MsgBox Mechanic.Salary
    MsgBox Mechanic.Address
End Sub

Запис із вищезгаданого прикладу можна скоротити за допомогою операторів With … End With

Type Employees
    PerNumber As Integer
    Surname As String
    Name As String
    MiddleName As String
    Salary As Currency
    Address As String
End Type
Sub myVar()
    Dim Mechanic As Employees
        With Mechanic
            .PerNumber = 1
            .Surname = "Іванов"
            .Name = "Іван"
            .MiddleName = "Іванович"
            .Salary = 28000
            .Address = "м. Київ, вул. Гійома де Боплана, 2"
        End With
        
    MsgBox Mechanic.PerNumber
    MsgBox Mechanic.Surname
    MsgBox Mechanic.Name
    MsgBox Mechanic.MiddleName
    MsgBox Mechanic.Salary
    MsgBox Mechanic.Address
End Sub

Рекомендуємо

Сollaborator

Hosting Ukraine

Продукція та послуги

Main Menu