Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
04 VBA.doc
Скачиваний:
16
Добавлен:
20.04.2015
Размер:
526.85 Кб
Скачать

4.9. Массивы.

При решении практических задач нередко приходится иметь дело с векторами и матрицами. Их элементы всегда снабжены индексами. Для работы с ними во всех языках программирования, в том числе и в VBA, используются массивы. Группа величин, обозначенных одним именем и снабженных целочисленными индексами, называется массивом. Например, векторx= (x1,x2,x3) представляет собой массив, состоящий из трех элементов с индексами 1,2,3. Для этого массива в памяти отводится 3 поля, по одному для каждого элемента. Все элементы одного массива должны быть одного типа, например, все целые, все вещественные, все строковые. Если каждый элемент массива имеет один индекс, то массив называется одномерным. Вектор - одномерный массив. Элементы матрицы имеют по два индекса: номер строки и номер столбца. Матрица - двумерный массив. Количество индексов у многомерного массива не более 60. Мы ограничимся рассмотрением одномерных и двумерных массивов.

Все массивы в программе обязательно описываются. Описание сообщает системе:

  • какие переменные снабжены индексами;

  • каков тип каждой переменной:

  • сколько элементов имеет каждая переменная;

  • сколько индексов у каждого элемента.

По умолчанию минимальное значение индекса равно нулю, а описание массива может иметь вид:

Dimимя массива (n)[Asтип]

Здесь n – максимальное значение индекса, тип – ключевое слово, которое указывает тип элементов массива. Количество элементов равноn+1, так как первый элемент имеет индекс 0. Выражение в квадратных скобках можно опустить. В этом случае массиву будет присвоен типVariant.

Пример.

Dim y(3), x(2,3) As Double

В приведенном примере тип массива у не указан. Этот массив имеет не 3, а 4 элемента типа Variantс индексами 0,1,2,3. В массиве х 3 строки и 4 столбца. Тип элементов этой матрицы –Double.

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

nmin To nmax,

где nmin - минимальная величина индекса, аnmax - максимальная.

Пример.

Dim z( 1 To 3), v(2 To 4), w(1 To 2, 1 To 3)

Элементы массива zимеют индексы 1,2,3, а элементы массиваv- 2,3,4. В матрицеwномера строк равны 1 и 2, а номера столбцов – 1,2,3. Все три массива хранят данные типаVariant.

В программе каждый элемент массива обозначается следующим образом:

Имя массива (индекс или индексы)

Индекс элемента массива может быть целым числом, переменной или арифметическим выражением.

Пример.

x(k), w(1,2), z(i+1), v(2,4)

Индекс элемента массива можно использовать в качестве параметра цикла. Большое преимущество массивов состоит в том, что их легко обрабатывать в цикле.

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

Пример. Вычислить сумму 4-х элементов массива x, значения которых записаны в диапазонеA2:D2 рабочего листа “Лист 1”, т.е. в столбцах с 1-го по 4-ый во второй строке.

Sub Main()

Dim x(1 To 4)

For i = 1 To 4

x(i)=Cells(2,i)

Next

S = 0

For i = 1 To 4

S = S + x(i)

Next

Debug.Print "S = "; S

End Sub

Пример. Разработать программу вычисления вектора С по формуле:

С = А + 2*В. Значения элементов векторов А и В записать на рабочем листе Excel. Результаты расчета вывести на тот же лист.

,

Таблица исходных данных и результатов расчета.

Вектор А

Вектор В

Вектор С

1

0,4

1,8

2

1,0

4,0

3

-1,0

1,0


Массивы А и В записаны на рабочем листе в строках со второй по четвертую, а индексы элементов, обозначенные буквой i, изменяются от 1 до 3. Поэтому в программе в операторах, в которых элементам массивов присваиваются значения, номер строки определяется выражениемi+1.

Программа.

Рис.13

Подобным образом должны быть решены примеры из задания 5.

ЛИТЕРАТУРА

  1. А.Гарнаев. Самоучитель VBA. Санкт-Петербург, 1999.

2. А.Гарнаев. EXCEL, VBA, INTERNET в экономике и финансах.Санкт-Петербург, 2001.

  1. К.Гетц, М.Джилберт. Программирование в MicrosoftOffice. Для пользователя. ВНV, Киев, 2000.

  2. Руководство программиста по VisualBasicдляMicrosoftOffice97.MicrosoftPress, Русская редакция, 1997.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]