Массивы Excel VBA: что такое, как использовать и типы массивов в VBA
Что такое массив VBA?
Массив определяется как область памяти, способная хранить более одного значения. Все значения должны иметь один и тот же тип данных. Допустим, вы хотите сохранить список ваших любимых напитков в одной переменной. Для этого вы можете использовать массив VBA.
Используя массив, вы можете ссылаться на связанные значения под одним и тем же именем. Вы можете использовать индекс или нижний индекс, чтобы отличить их друг от друга. Отдельные значения называются элементами массива Excel VBA. Они смежны от индекса 0 до самого высокого значения индекса.
В этом руководстве предполагается, что вы используете Microsoft Excel версия 2013. Знания по-прежнему применимы и к другим версиям Microsoft Эксель тоже.
Каковы преимущества массивов?
Ниже приведены некоторые преимущества, предлагаемые функцией массива VBA.
- Сгруппируйте логически связанные данные — допустим, вы хотите сохранить список студентов. Вы можете использовать одну переменную-массив, которая имеет отдельные местоположения для категорий учащихся, например детский сад, начальная, средняя, старшая школа и т. д.
- Массивы упрощают написание поддерживаемого кода. Для одних и тех же логически связанных данных он позволяет определить одну переменную вместо определения нескольких переменных.
- Повышенная производительность — после определения массива становится быстрее извлекать, сортировать и изменять данные.
Типы массивов в VBA
VBA поддерживает два типа массивов, а именно;
- статический – Эти типы массивов имеют фиксированное заранее определенное количество элементов, которые можно хранить. Невозможно изменить размер типа данных статического массива. Это полезно, если вы хотите работать с известными объектами, такими как количество дней в неделе, пол и т. д.Для примера: Dim ArrayMonth(12) как строка
- Dynamic – Эти типы массивов не имеют фиксированного заранее определенного количества элементов, которые можно хранить. Это полезно при работе с объектами, номер которых невозможно заранее определить.Для примера: Dim ArrayMonth() как вариант
Синтаксис объявления массивов
Статические массивы
Синтаксис объявления СТАТИЧЕСКИЙ массивы выглядит следующим образом:
Dim arrayName (n) as datatype
ВОТ,
Code | Экшн |
---|---|
Тип данных Dim arrayName (n) |
|
Динамические массивы
Синтаксис объявления DYNAMIC массивы выглядит следующим образом:
Dim arrayName() as datatype ReDim arrayName(4)
ВОТ,
Code | Экшн |
---|---|
Тип данных Dim arrayName() |
|
Имя массива ReDim (4) |
|
Размеры массива
Массив может быть одномерным, двухмерным или многомерным.
- Одно измерение: в этом измерении массив использует только один индекс. Например, количество людей каждого возраста.
- Два измерения: в этом измерении массив использует два индекса. Например, количество учеников в каждом классе. Требуется количество классов и количество учеников в каждом классе.
- Многомерный: в этом измерении массив использует более двух индексов. Например, температура в дневное время. (30, 40, 20).
Как использовать массив в Excel VBA
Мы создадим простое приложение. Это приложение заполняет лист Excel данными из переменной массива. В этом примере массива VBA мы собираемся сделать следующие вещи.
- Создать новый Microsoft Книгу Excel и сохраните ее как книгу Excel с поддержкой макросов (*.xlsm).
- Добавление командной кнопки в книгу
- Установите свойства имени и заголовка командной кнопки.
- Программирование VBA, заполняющего лист Excel
Давайте выполним это упражнение шаг за шагом,
Шаг 1. Создайте новую книгу.
- Откройте Microsoft Excel
- Сохраните новую книгу как VBA Arrays.xlsm.
Шаг 2 – Добавьте командную кнопку
Примечание: В этом разделе предполагается, что вы знакомы с процессом создания интерфейса в Excel. Если вы не знакомы, прочитайте руководство Управление формой VBA Excel и управление ActiveX. Он покажет вам, как создать интерфейс.
- Добавляем командную кнопку на лист
- Установите для свойства name значение cmdLoadBeverages.
- Установите для свойства caption значение «Загрузить напитки».
Ваш графический интерфейс теперь должен выглядеть следующим образом
Шаг 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
ВОТ,
Code | Экшн |
---|---|
Тусклые напитки (от 1 до 4) в виде строки |
|
Напитки(1) = «Пепси» |
|
Sheet1.Cells(1, 1).Value = «Мои любимые напитки». |
|
Sheet1.Cells(2, 1).Значение = Напитки(1) |
|
Тестирование нашего приложения
Выберите вкладку «Разработчик» и убедитесь, что кнопка «Режим дизайна» отключена. Индикатор есть, он будет иметь белый фон, а не цветной (зеленоватый). (См. изображение ниже)
Нажмите кнопку «Загрузить напитки».
Вы получите следующие результаты
Загрузите Excel, содержащий приведенный выше код.
Загрузите приведенный выше код Excel
Резюме
- Массив — это переменная, способная хранить более одного значения.
- Excel VBA поддерживает статические и динамические массивы
- Массивы упрощают написание поддерживаемого кода по сравнению с объявлением множества переменных для логически связанных данных.