- •Алгоритмизация и программирование лабораторный практикум по информатике для студентов экономических специальностей
- •Содержание
- •Введение
- •1 Пользовательский интерфейс vba
- •1.1 Особенности среды программирования
- •1.2 Запуск vba
- •1.3 Структура редактора Visual Basic
- •1.3.1 Окно проекта Project-vbaProject
- •1.3.2 Окно редактирования кода
- •1.3.3 Окно редактирования форм
- •1.3.4 Окно свойств “Properties”
- •1.3.5 Окно панели элементов управления (Toolbox)
- •2 Разработка программного кода
- •2.1 Структура проекта vba
- •2.2 Пользовательские подпрограммы-функции
- •2.3 Пользовательские подпрограммы-процедуры
- •2.4 Данные и их описание
- •2.4.1 Алфавит и лексемы языка
- •2.4.2 Переменные и константы
- •2.4.3 Объявление переменных
- •2.4.4 Объявление констант
- •2.4.5 Строковые переменные
- •2.4.6 Области видимости переменных и констант
- •2.4.7 Типы данных
- •2.5 Функции в vba
- •2.5.1 Математические встроенные функции
- •2.5.2 Математические функции, не представленные в vba
- •2.5.3 Функция форматирования данных
- •2.5.4 Функции преобразования типов
- •2.6 Операторы, выражения и операции
- •2.6.1 Операция присваивания
- •2.6.2 Математические операции
- •2.6.3 Операции отношения
- •2.6.4 Логические операции
- •2.6.5 Строковые операции
- •2.7 Отладка программ и обработка ошибочных ситуаций
- •2.7.1 Отладка
- •2.7.2 Точки останова (контрольные точки)
- •2.7.3 Наблюдение за данными с помощью просматриваемых значений
- •2.7.4 Пошаговое выполнение программы
- •2.7.5 Обработка ошибок
- •2.8 Условный оператор
- •2.9 Оператор выбора (переключатель)
- •2.10 Операторы цикла
- •2.10.1 Циклы с параметром For … Next
- •2.10.2 Циклы с условием (итерационные)
- •2.11 Табулирование функции
- •2.11.1 Табулирование функции одной переменной
- •2.11.2 Табулирование функции двух переменных (вложенные циклы)
- •2.12 Массивы
- •2.12.1 Объявление массива
- •2.12.2 Динамические массивы
- •2.12.3 Действия над массивами
- •2.12.4 Действия над элементами массива
- •2.12.5 Формирование массива
- •2.12.6 Одномерные массивы
- •2.12.7 Двумерные массивы. Вложенные циклы.
- •3 Объектно-ориентированное программирование на vba
- •3.1 Разработка программы создания приложения с помощью Форм
- •1 Этап. Разработка пользовательского интерфейса
- •II этап. Установка свойств объектов
- •III этап. Составление программного кода
- •IV этап – Запуск программы
- •3.2 Встроенные диалоговые окна в vba
- •3.2.1 Окна сообщений (MsgBox)
- •3.2.2 Окна ввода
- •3.3 Объекты формы в vba: Кнопки-переключатели, Контрольные индикаторы, Рамки
- •3.4 Объекты формы в vba: Полоса прокрутки и Счетчик
- •3.5 Объекты формы в vba: Список и Поле со списком
- •3.5.1 Заполнение списка и удаление его элементов
- •3.5.2 Список с несколькими столбцами
- •3.5.3 Многоэлементный выбор из списка
- •3.5.4 Добавление и удаление данных
- •3.6 Объект формы в vba: Рисунок
- •3.6.1 Добавление растровых изображений в форму
- •3.6.2 Вставка изображений в форму
- •3.7 Интеграция приложений: ms Excel и ms Word
- •3.7.1 Открытие документа ms Word функцией CreateObject
- •3.7.2 Открытие документа ms Word функцией GetObject
- •4 Литература, рекомендуемая для изучения
2.12.3 Действия над массивами
Для работы с массивом как единым целым используется идентификатор массива без указания индекса в круглых скобках. Массив может участвовать в операторе присваивания. Массивы, участвующие в этих действиях, должны быть идентичны по структуре, то есть иметь одинаковые типы индексов и одинаковые типы компонентов.
Пример 1.
Если массивы А и В описаны как
Dim A (1 To 2) As Byte, B (1 To 2) As Byte,
то применение к ним допустимой операции даст следующий результат:
Выражение |
Результат |
A = B |
Все значения элементов массива В присваиваются соответствующим элементам массива А. Значения элементов массива В остаются неизменны |
Пример 2.
Значение одного массива присваивается другому поэлементно в операторе цикла.
Sub primer ()
Dim A (1 To 2) As Byte, B (1 To 2) As Byte
Dim I As Byte
B(1) = 2
B(2) = 4
For I = 1 To 2
A(i) = B(i)
Debug.Print A(i), B(i)
Next i
End Sub
2.12.4 Действия над элементами массива
После объявления массива каждый его элемент можно обрабатывать, указав идентификатор (имя) массива и индекс элемента в круглых скобках.
Пример 1.
Запись
Mas (2), VectorZ (10)
позволяет обратиться к третьему элементу массива Mas и одиннадцатому элементу массива VectorZ.
Индексированные элементы массива называются индексированными переменными и могут быть использованы так же, как и простые переменные. Например, они могут находиться в выражениях в качестве операндов, использоваться в операторах параметрических и итерационных циклов, входить в качестве параметров в операторы ввода и вывода; им можно присваивать любые значения, соответствующие их типу.
2.12.5 Формирование массива
1 способ.
Формирование массива в программе определяется поэлементно с помощью последовательности операторов.
Пример 1.
Dim B (1 To 2, 1 To 3) As Single
B (1,1) = 2 : B (1,2) = 4 : B (1,3) = 6
B (2,1) = 1 : B (2,2) = 6 : B (2,3) = 2
2 способ.
Формирование массива с помощью датчика случайных чисел.
Пример 2.
Sub primer ()
Dim A(1 To 12) As Variant
Randomize
For i = 1 To 10
A(i) = Rnd (40)
Debug.Print A(i)
Next i
End Sub
3 способ
Инициализация элементов массива оператором цикла.
Наиболее эффективно эта операция выполняется с помощью оператора For.
Пример 3.
Dim M (1 To 9, 1 To 9) As Integer
Dim i As Integer
Dim j As Integer
For i = 1 To 9
For j = 1 To 9
M(i, j) = i * j
Next j
Next i
4 способ
Использование функции Array (массив) для задания одномерного массива
Удобным способом определения одномерных массивов является функция Array, преобразующая список элементов, разделенных запятыми, в вектор из этих значений, и присваивающая их переменной типа Variant.
Пример 4.
Sub ShowArray ()
Dim A As Variant
A = Array (10, 20, 30)
Debug.Print A(0) ‘Отобразится: 10
Debug.Print A(2) ‘Отобразится: 30
End Sub
Использование функции Array (массив) для задания многомерного массива
Функция Array позволяет задавать не только одномерные, но и многомерные массивы. Это обеспечивается использованием вложенной конструкции с функциями Array.
Пример 5.
Option Base 1
Sub MultiDim ()
Dim A As Variant
A = Array (Array(“Санкт-Петербург“, “Россия“), Array (“Киев“, “Украина“))
Debug.Print A (1) (1) ‘Отобразится: Санкт-Петербург
Debug.Print A (1) (2) ‘Отобразится: Россия
End Sub
Функция Array позволяет задавать не просто многомерные массивы, а массивы, у которых строки имеют различное число компонентов.
Пример 6.
Private Sub VarArray ()
Dim M As Variant
M = Array(Array(1,2), Array (3,4,5))
Debug.Print M (0) (0), M (1) (2) ‘Отобразится: 1 5
End Sub