
- •Лекция №1. Общая характеристика языков программирования.
- •1.Языки программирования
- •2.Трансляторы
- •3.История создания языков
- •Лекция №2. Введение в Visual Basic for Application
- •1. Основы vba
- •2.Редактор Visual Basic
- •3. Величины
- •Переменные
- •Встроенные типы данных vba.
- •Константы.
- •Лекция №3. Некоторые объекты vba и их свойства.
- •1. Объектная модель Excel.
- •2. Объекты vba
- •3.Некоторые объекты vba.
- •Лекция №4. Форма и элементы управления
- •1.Форма
- •Свойства формы
- •Методы формы
- •События формы
- •Инструкции, управляющие процессами начала и завершения работы с формой
- •2.Элементы управления
- •Общие свойства элементов управления
- •Общие методы элементов управления
- •Общие события элементов управления
- •Кнопка (CommandButton) Свойства объекта
- •Поле (TextBox)
- •Свойства объекта
- •Счетчик
- •Свойства объекта
- •Список (ListBox)
- •Свойства объекта
- •Методы объекта
- •Поле со списком (ComboBox)
- •Свойства объекта
- •Методы объекта
- •Объект Collection
- •Методы объекта
- •Свойства объекта
- •Набор страниц (MultiPage)
- •Свойства объекта
- •Методы объекта
- •Набор вкладок (TabStrip)
- •Календарь (Calendar)
- •Свойства объекта
- •Методы объекта
- •Отображение встроенных диалоговых окон
- •Оператор rSet
- •2.Условные операторы
- •Оператор If…Then…Else
- •Оператор выбора Select Case
- •Функция iIf
- •Оператор безусловного перехода GoTo
- •3.Операторы цикла
- •Лекция №8. Структурированные типы данных
- •1. Массив
- •2. Перечисляемый тип
- •3. Запись
- •Лекция №9. Диалоговые окна
- •1. Функция InputBox
- •2. Функция MsgBox
Лекция №8. Структурированные типы данных
1. Массив
Массив – совокупность однотипных индексированных переменных. Количество индексов массива может достигать 60, но чаще всего используются массивы с одним, двумя или тремя индексами. Индексы задаются целочисленными значениями.
Объявление массива:
{Dim½Private½Public½Static} имяМассива (<размер1> [, <размер2>] …) [As типДанных] [, имяМассива (<размер1> [, <размер2>] …) [As типДанных]]…
Размер массива может объявляться тремя способами:
Объявление только верхней границы, при этом нижняя граница принимается равной нулю (0).
Объявляются верхняя и нижняя граница изменения индекса: нижняяГраница To верхняяГраница
Размер массива вообще не объявляется, размерность массива неизвестна: ( ).
Массивы, размерность которых определена при описании, называются статическими. Если количество элементов при описании не фиксируется – массив называется динамическим. Он может менять количество элементов непосредственно при выполнении программы.
Например:
Объявим одномерный массив, состоящий из десяти целых чисел
Dim D1 (9) As Integer
Dim D2(1 To 10) As Integer
Объявим двумерный целочисленный массив, представляющий собой матрицу размерностью 4 строки, 7 столбцов.
Dim D3 (3, 6) As Long
Dim D4 (1 To 4, 1 To 7) As Long
Обращение к элементу массива осуществляется путем указания имени данного массива и индексов элемента.
Например:
Если необходимо обратиться к третьему элементу массива D1 из предыдущего примера, то следует указать: D1(2) – пересчет элементов в этом случае идет с нуля.
Если необходимо обратиться к элементу массива D4, стоящему во 2-й строке и 5-м столбце, то будет указано D4(2,5).
Синтаксис объявления динамического массива отличается от объявления статического тем, что после имени массива в нем стоят лишь пустые скобки. Однако перед тем как использовать массив, нужно выполнить оператор ReDim, который задаст размерность и диапазон изменения индексов динамического массива.
ReDim имяМассива (размер1 [,размер2 …])
Оператор ReDim может быть использован неоднократно для изменения размерности одного и того же массива. Но при изменении размерности под массив будет заново выделяться память, и текущее значение элементов этого массива будут потеряны. Чтобы их не потерять при переопределении размерности, используется ключевое слово Preserve. Но в этом случае можно будет поменять только последний аргумент, определяющий размерность массива.
Например:
Dim D5() As Integer
…
ReDim D5 (1 To 10)
…
ReDim Preserve D5 (1 To 14)
2. Перечисляемый тип
При необходимости определить новый тип данных, содержащий некоторые определенные значения, задается перечисляемый тип.
[Private | Public] Enum имяТипа
имяЗначения [= Константа]
имяЗначения [= Константа]
…
End Enum
Перечисляемые типы могут описываться только на уровне модуля, т.е. нельзя создать такое описание внутри процедуры. По умолчанию все значения перечисляемого типа перенумерованы от 0, но по желанию можно задать константное целое значение для нумерации значений типа.
Например:
Определим тип Неделя. Элементами данного типа будут являться названия дней недели.
Private Enum Неделя
Понедельник
Вторник
Среда
Четверг
Пятница
Суббота
Воскресенье
End Enum
Теперь в модуле определимо переменную День с типом Неделя.
Dim День As Неделя
…
День = Суббота