- •Алгоритмизация и программирование на vba: основы программирования
- •Содержание
- •Лабораторная работа 1 Создание программы на vba
- •Цель работы
- •Общие сведения
- •Языки программирования
- •Объекты
- •События
- •Порядок выполнения работы
- •Содержание отчёта
- •Контрольные вопросы
- •Лабораторная работа 2 Реализация линейных алгоритмов в vba
- •Синтаксис:
- •Аргументы:
- •Инструкция DefТип
- •Константы
- •Допустимые имена
- •Инструкции vba
- •Форматирование строк программы
- •Перенос инструкции
- •Размещение инструкций в одну строку
- •Комментарии
- •Операции в vba
- •Арифметические
- •Строковые
- •Синтаксис:
- •Операции отношения
- •Логические операции.
- •Приоритеты операций
- •Встроенные функции vba
- •Математические функции
- •Функции проверки типов
- •Функции преобразования форматов
- •Синтаксис:
- •Аргументы:
- •Функции обработки строк
- •Функции времени и даты
- •Функции, возвращающие строки
- •Встроенные диалоговые окна
- •Синтаксис:
- •Аргументы:
- •Синтаксис:
- •Аргументы:
- •Работы с данными Host приложений.
- •Анализ макросов
- •Обращение к объектам.
- •Оператор «With».
- •Задание
- •Содержание отчёта
- •Контрольные вопросы
- •Пример выполнения работы Задание:
- •Текст программы:
- •Индивидуальные задания
Синтаксис:
Dim[WithEvents] ИмяПеременной [([Индексы])] [As[New] Тип] [, [WithEvents] ИмяПеременной [([Индексы])] [As[New] Тип]]
Аргументы:
WithEvents- Ключевое слово, указывающее, что аргумент ИмяПеременной является именем объектной переменной, которая используется при отклике на события, генерируемые объектомActiveX(то есть объектом, который может быть открыт для других приложений и средств программирования)
ИмяПеременной- Имя переменной, удовлетворяющее стандартным правилам именования переменных
Индексы- Размерности переменной массива; допускается описание до 60 размерностей. Для задания аргумента индексы используется следующий синтаксис: [Нижний То] Верхний [, [Нижний То] Верхний] ... Если нижний индекс не задан явно, нижняя граница массива определяется инструкциейOption Base <0|1>и может быть равна 0 или 1. Если отсутствует инструкцияoptionBase, нижняя граница массива равняется нулю
New- Ключевое слово, включающее возможность неявного создания объекта. Если указано ключевое словоNewпри описании объектной переменной, новый экземпляр объекта создается при первой ссылке на него, поэтому нет необходимости присваивать ссылку на объект с помощью инструкцииSet
Тип- Тип данных переменной. Для каждой описываемой переменной следует использовать отдельное предложениеAsТип
Переменные, описанные с помощью ключевого слова Dimна уровне модуля, доступны для всех процедур в данном модуле. Переменные, описанные на уровне процедуры, доступны только в данной процедуре.
Инструкция Dimпредназначена для описания типа данных переменной на уровне модуля или процедуры. Например, следующая инструкция описывает переменную с типомinteger.DimNAsInteger
Инструкция Dimпредназначена также для описания объектного типа переменных. Далее приводится описание переменной для нового экземпляра рабочего листа.DimXAsNewWorksheet
Если при описании объектной переменной не используется ключевое слово New, то для использования объекта, на который ссылается переменная, существующий объект должен быть присвоен переменной с помощью инструкцииSet.
Инструкция DefТип
Инструкция DefTиn(вместо тип в имени инструкции фигурируют буквы, обозначающие конкретный тип данных) используется на уровне модуля для задания типа данных по умолчанию для переменных, аргументов, передаваемых в процедуры, и значений, возвращаемых процедурамиFunctionиPropertyGet, имена которых начинаются с соответствующих символов (Таблица 2).
Таблица 2. Задание типов данных по умолчанию
Синтаксис |
Описание |
DefBoolДиапазонБукв [, ДиапазонБукв] ... |
Тип данных Boolean |
DefByteДиапазонБукв [, ДиапазонБукв] ... |
Тип данных Byte |
DeflntДиапазонБукв [, ДиапазонБукв] ... |
Тип данных Integer |
DefLngДиапазонБукв [,ДиапазонБукв] ... |
Тип данных Long |
DefCurДиапазонБукв [, ДиапазонБукв] ... |
Тип данных Currency |
DefSngДиапазонБукв [, ДиапазонБукв] ... |
Тип данных Single |
DefDblДиапазонБукв [, ДиапазонБукв] ... |
Тип данных Double |
DefDateДиапазонБукв [, ДиапазонБукв] ... |
Тип данных Date |
DefStrДиапазонБукв [, ДиапазонБукв] ... |
Тип данных String |
DefObjДиапазонБукв [, ДиапазонБукв] ... |
Тип данных Object |
DefVarДиапазонБукв [, ДиапазонБукв] ... |
Тип данных Variant |
Аргумент ДиапазонБукв имеет следующий синтаксис:
Буква1[-Буква2]
Аргументы Буква1 и Буква2 указывают границы диапазона имен, для которых задается тип данных по умолчанию.
В следующем примере инструкция устанавливает, что все переменные с именами, начинающимися с букв из диапазона от А до Q, имеют строковый тип:
DefStrA-Q
Инструкция DefТип действует только на модуль, в котором она используется.
При указании диапазона букв обычно определяется тип данных по умолчанию для переменных, которые начинаются с первых 128 символов набора. Однако при указании диапазона A—Zзадается тип данных по умолчанию для всех переменных, включая те, что начинаются с международных символов из расширенной части набора (128-255).
Еще одним способом задания типа переменной по умолчанию является включение в конец имени специального символа, устанавливающего тип переменной (Таблица 3).
Таблица 3. Символы для задания типов по умолчанию
Символ |
Тип |
* |
Integer |
& |
Long |
| |
Single |
# |
Double |
@ |
Currency |
$ |
String |