Масиви Excel VBA: що таке, як використовувати та типи масивів у VBA
Що таке масив VBA?
Масив визначається як область пам’яті, яка може зберігати більше одного значення. Усі значення мають бути одного типу даних. Скажімо, ви хочете зберегти список ваших улюблених напоїв в одній змінній, ви можете використовувати для цього масив VBA.
Використовуючи масив, ви можете звертатися до пов’язаних значень за однаковими іменами. Ви можете використовувати індекс або індекс, щоб відрізнити їх. Окремі значення називаються елементами масиву Excel VBA. Вони є суміжними від індексу 0 до найвищого значення індексу.
Цей посібник передбачає, що ви використовуєте Microsoft перевершувати версія 2013. Знання все ще застосовуються до інших версій Microsoft Excel також.
Які переваги масивів?
Нижче наведено деякі переваги функції масиву VBA
- Згрупуйте логічно пов’язані дані разом – скажімо, ви хочете зберегти список студентів. Ви можете використовувати єдину змінну масиву, яка має окремі розташування для категорій учнів, наприклад дитячий садок, початкова, середня, середня школа тощо.
- Масиви полегшують написання підтримуваного коду. Для тих самих логічно пов’язаних даних це дозволяє визначати одну змінну замість визначення кількох змінних.
- Краща продуктивність – після визначення масиву дані швидше можна отримувати, сортувати та змінювати.
Типи масивів у VBA
VBA підтримує два типи масивів, а саме;
- Статичний – Ці типи масивів мають фіксовану заздалегідь визначену кількість елементів, які можна зберігати. Неможливо змінити розмір типу даних статичного масиву. Це корисно, коли ви хочете працювати з відомими об’єктами, такими як кількість днів у тижні, стать тощо.Наприклад: Dim ArrayMonth(12) як рядок
- Dynamic – Ці типи масивів не мають фіксованої заздалегідь визначеної кількості елементів, які можна зберігати. Це корисно під час роботи з сутностями, кількість яких не можна заздалегідь визначити.Наприклад: Dim ArrayMonth() як варіант
Синтаксис для оголошення масивів
Статичні масиви
Синтаксис для оголошення СТАТИЧНА масивів виглядає наступним чином:
Dim arrayName (n) as datatype
ТУТ,
код | дію |
---|---|
Тип даних Dim arrayName (n). |
|
Dynamic arrays
Синтаксис для оголошення ДИНАМІКА масивів виглядає наступним чином:
Dim arrayName() as datatype ReDim arrayName(4)
ТУТ,
код | дію |
---|---|
Тип даних Dim arrayName (). |
|
ReDim arrayName(4) |
|
Розміри масиву
Масив може бути одновимірним, двовимірним або багатовимірним.
- Один вимір: у цьому вимірі масив використовує лише один індекс. Наприклад, кількість людей кожного віку.
- Два виміри: у цьому вимірі масив використовує два індекси. Наприклад, кількість учнів у кожному класі. Це вимагає кількості класів і кількості учнів у кожному класі
- Багатовимірність: у цьому вимірі масив використовує більше двох індексів. Наприклад, температура вдень. (30, 40, 20).
Як використовувати масив у Excel VBA
Ми створимо простий додаток. Ця програма заповнює аркуш Excel даними зі змінної масиву. У цьому прикладі масиву VBA ми будемо робити наступні речі.
- Створіть новий Microsoft Робоча книга Excel і збережіть її як книгу Excel із підтримкою макросів (*.xlsm)
- Додайте командну кнопку до книги
- Встановіть властивості назви та підпису командної кнопки
- Програмування VBA, який заповнює аркуш Excel
Давайте виконувати цю вправу крок за кроком,
Крок 1 – Створіть нову книгу
- відкритий Microsoft перевершувати
- Збережіть нову книгу як VBA Arrays.xlsm
Крок 2 – Додайте командну кнопку
Примітка: У цьому розділі передбачається, що ви знайомі з процесом створення інтерфейсу в Excel. Якщо ви не знайомі, прочитайте підручник Елемент керування формами VBA Excel і елемент керування ActiveX. Він покаже вам, як створити інтерфейс
- Додати командну кнопку на аркуш
- Встановіть для властивості name значення cmdLoadBeverages
- Встановіть для властивості caption значення Load Beverages
Тепер ваш графічний інтерфейс має бути таким
Крок 3 – Збережіть файл
- Натисніть кнопку зберегти як
- Виберіть книгу Excel із підтримкою макросів (*.xlsm), як показано на зображенні нижче
Крок 4 – Напишіть код
Тепер ми напишемо код для нашої програми
- Клацніть правою кнопкою миші кнопку «Завантажити напої» та виберіть «Переглянути код».
- Додайте наступний код до події клацання cmdLoadBeverages
Private Sub cmdLoadBeverages_Click() Dim Drinks(1 To 4) As String Drinks(1) = "Pepsi" Drinks(2) = "Coke" Drinks(3) = "Fanta" Drinks(4) = "Juice" Sheet1.Cells(1, 1).Value = "My Favorite Beverages" Sheet1.Cells(2, 1).Value = Drinks(1) Sheet1.Cells(3, 1).Value = Drinks(2) Sheet1.Cells(4, 1).Value = Drinks(3) Sheet1.Cells(5, 1).Value = Drinks(4) End Sub
ТУТ,
код | дію |
---|---|
Dim Drinks (1-4) як рядок |
|
Напої(1) = «Пепсі» |
|
Sheet1.Cells(1, 1).Value = «Мої улюблені напої». |
|
Sheet1.Cells(2, 1).Value = Drinks(1) |
|
Тестуємо наш додаток
Перейдіть на вкладку розробника та переконайтеся, що кнопку режиму дизайну вимкнено. Індикатор полягає в тому, що він матиме білий фон, а не кольоровий (зеленуватий). (Див. зображення нижче)
Натисніть кнопку «Завантажити напої».
Ви отримаєте такі результати
Завантажте Excel із кодом вище
Завантажте наведений вище код Excel
Підсумки
- Масив — це змінна, яка може зберігати більше одного значення
- Excel VBA підтримує статичні та динамічні масиви
- Масиви полегшують написання супроводжуваного коду порівняно з оголошенням великої кількості змінних для даних, які логічно пов’язані.