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