Учебники

4) Массивы VBA

Что такое массив VBA?

Массив определяется как область памяти, способная хранить более одного значения. Все значения должны быть одного типа данных. Допустим, вы хотите сохранить список своих любимых напитков в одной переменной, для этого вы можете использовать массив.

Используя массив, вы можете ссылаться на связанные значения с тем же именем. Вы можете использовать индекс или индекс, чтобы отличить их друг от друга. Отдельные значения называются элементами массива. Они непрерывны от индекса 0 до самого высокого значения индекса.

В этом руководстве предполагается, что вы используете Microsoft Excel версии 2013. Знания по-прежнему применимы и к другим версиям Microsoft Excel.

В этом уроке по программированию на VBA вы узнаете

Каковы преимущества массивов?

Ниже приведены некоторые преимущества функции массива.

  1. Группируйте логически связанные данные вместе — скажем, вы хотите сохранить список студентов. Вы можете использовать одну переменную массива, которая имеет отдельные местоположения для категорий учащихся, например, детский сад, начальная, средняя школа, старшая школа и т. Д.
  2. Массивы облегчают написание поддерживаемого кода. Для одних и тех же логически связанных данных он позволяет вам определять одну переменную вместо определения более одной переменной.
  3. Повышение производительности — после определения массива можно быстрее извлекать, сортировать и изменять данные.

Типы массивов

VBA поддерживает два типа массивов, а именно;

  • Статический — эти типы массивов имеют фиксированное заранее определенное количество элементов, которые могут быть сохранены. Нельзя изменить размер типа данных статического массива. Они полезны, когда вы хотите работать с известными объектами, такими как количество дней в неделе, пол и т. Д.

    Например : Dim ArrayMonth (12) As String

  • Динамический — эти типы массивов не имеют фиксированного заранее определенного количества элементов, которые могут быть сохранены. Они полезны при работе с сущностями, для которых невозможно заранее определить число.

    Например : Dim ArrayMonth () в качестве варианта

Синтаксис для объявления массивов

Статические массивы

Синтаксис для объявления массивов STATIC следующий:

Dim arrayName (n) as datatype

ВОТ,

Код действие
Dim arrayName (n) тип данных
  1. Он объявляет переменную массива с именем arrayName с размером n и типом данных. Размер относится к числу элементов, которые может хранить массив.

Динамические массивы

Синтаксис для объявления ДИНАМИЧЕСКИХ массивов следующий:

Dim arrayName() as datatype
ReDim arrayName(4)

ВОТ,

Код действие
Dim arrayName () тип данных
  1. Он объявляет переменную массива с именем arrayName без указания количества элементов
ReDim arrayName (4)
  1. Он определяет размер массива после того, как массив был определен.

Размеры массива

Массив может быть одним измерением, двумя измерениями или многомерным.

  • Одно измерение : в этом измерении массив использует только один индекс. Например, количество людей каждого возраста.
  • Два измерения . В этом измерении массив использует два индекса. Например, количество учеников в каждом классе. Требуется количество классов и количество студентов в каждом классе
  • Многомерное : в этом измерении массив использует более двух индексов. Например, температура днем. (30, 40, 20).

Как использовать массив в Excel VBA

Мы создадим простое приложение. Это приложение заполняет лист Excel данными из переменной массива. В этом примере мы собираемся сделать следующие вещи.

  • Создайте новую книгу Microsoft Excel и сохраните ее как книгу Excel с поддержкой макросов (* .xlsm)
  • Добавить командную кнопку в рабочую книгу
  • Установите имя и свойства заголовка командной кнопки
  • Программирование VBA, которая заполняет лист Excel

Давайте делать это упражнение шаг за шагом,

Шаг 1 — Создать новую книгу

  1. Откройте Microsoft Excel
  2. Сохраните новую книгу как VBA Arrays.xlsm

Шаг 2 — Добавить командную кнопку

Примечание. В этом разделе предполагается, что вы знакомы с процессом создания интерфейса в Excel. Если вы не знакомы, прочитайте учебное пособие по VBA Excel Form Control & ActiveX Control . Он покажет вам, как создать интерфейс

  1. Добавить командную кнопку на лист

VBA Arrays

  1. Установите для свойства name значение cmdLoadBeverages
  2. Установите для свойства заголовка значение Load Beverages.

Ваш графический интерфейс теперь должен быть следующим

VBA Arrays

Шаг 3 — Сохраните файл

  1. Нажмите на кнопку Сохранить как
  2. Выберите книгу Excel с поддержкой макросов (* .xlsm), как показано на рисунке ниже.

VBA Arrays

Шаг 4 — Написать код

Теперь мы напишем код для нашего приложения

  1. Щелкните правой кнопкой мыши на кнопке «Загрузить напитки» и выберите код просмотра.
  2. Добавьте следующий код в событие щелчка 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

ВОТ,

Код

действие

Тусклые напитки (от 1 до 4) в виде струны

  • Он объявляет переменную массива под названием Drinks. Первый индекс массива равен 1, а последний индекс массива равен 4.

Напитки (1) = «Пепси»

  • Назначает значение Pepsi первому элементу массива. Другой подобный код делает то же самое для других элементов в массиве.

Sheet1.Cells (1, 1) .Value = «Мои любимые напитки».

  • Записывает значение «Мои любимые напитки» в адрес ячейки A1. Sheet1 ссылается на лист, а Cells (1,1) ссылается на строку номер 1 и столбец 1 (B)

Sheet1.Cells (2, 1) .Value = Напитки (1)

  • Записывает значение элемента массива с индексом 1 в строку номер два столбца 1

Тестирование нашего приложения

Select the developer tab and ensure that the Design mode button is «off.» The indicator is, it will have a white background and not a coloured (greenish) background. (See image below)

VBA Arrays

Click on Load Beverages button

You will get the following results

VBA Arrays

Download Excel containing above code

Download the above Excel Code

Summary

  1. An array is a variable capable of storing more than one value
  2. VBA supports static and dynamic arrays
  3. Arrays make it easy to write maintainable code compared to declaring a lot of variables for data that is logically related.