- •Л.В. Рыбакова Основы программирования в среде Visual Basic for Application (vba)
- •Содержание
- •1. Пользовательский интерфейс vba 5
- •2. Разработка программного кода 18
- •3. Объектно-ориентированное программирование на vba 100
- •Введение
- •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 Разработка программы создания приложения с помощью Форм
- •Разработка пользовательского приложения с помощью объектов Форм
- •3.2 Встроенные диалоговые окна в vba
- •3.2.1 Окна сообщений (MsgBox)
- •3.2.2 Окна ввода
- •Разработка проекта встроенных диалоговых окон в vba
- •Варианты индивидуальных заданий
- •3.3 Объекты формы в vba: кнопки-переключатели, контрольные индикаторы, рамки
- •Разработка пользовательского приложения с помощью объектов: кнопка-переключатель, контрольный индикатор, рамка
- •3.4 Объекты формы в vba: Полоса прокрутки и Счетчик
- •Разработка пользовательского приложения с помощью объектов: полоса прокрутки, счетчик
- •3.5 Интеграция приложений: ms Excel и ms Word
- •3.5.1 Открытие документа ms Word функцией Create Object
- •3.5.2 Открытие документа ms Word функцией GetObject
- •Интеграция популярных приложений, входящих в пакет ms Office
- •Контрольные вопросы:
- •Список используемой литературы
- •Рыбакова Людмила Владимировна
2.4.5 Строковые переменные
Различают строки переменной и фиксированной длины.
Строки переменной длины могут содержать до двух миллиардов символов.
Строки фиксированной длины – это строка постоянного размера, указанного при объявлении переменной. Если такой строке присваивается значение более длинное, то лишние символы заполняются пробелами.
Синтаксис:
Dim VarName As String * ДлинаСтроки
где
ДлинаСтроки – целочисленная переменная или константа, содержащая число, которое указывает длину строковой переменной.
Пример 1.
Dim strMyName As String * 20 (объявляется строковая переменная фиксированной длины в 20 символов)
В VBA имеется строковая операция – конкатенация, которая применяется для объединения нескольких строк в одну, и обозначается символом амперсенда &. Этот символ должен слева и справа обрамляться пробелами.
Пример 2.
strMy = “Visual” & “Basic for Applications”
2.4.6 Области видимости переменных и констант
Переменная или константа может существовать и быть доступной для некоторых частей программы и при этом быть недоступной (невидимой) для других частей программы.
Область программы, в которой может быть использована переменная или константа, называется областью видимости переменной.
Если переменная видима, то она доступна и, следовательно, существует.
Переменные или константы можно объявлять в трех местах:
- внутри процедуры (видимы только внутри процедуры);
- в верхней части модуля, которая называется областью общих объявлений (видимы всем процедурам данного модуля),
- глобальный уровень видимости (видимы в любой процедуре любого модуля приложения). Объявляются в верхней части модуля в области общих объявлений с помощью оператора Public.
Локальные объекты (местные)- это все объекты (константы, переменные), которые описываются после заголовка процедуры или функции, и доступны только в их пределах. Они создаются при входе в подпрограмму и уничтожаются при выходе из нее.
Глобальные объекты – это все объекты, описанные в вызывающей программе, которые являются доступными внутри всех процедур и функций.
Операторы объявления:
Dim – объявляет локальные переменные только внутри процедуры или функции, в которых они объявлены. Они сохраняют свои значения, только пока выполняется процедура. При завершении процедуры значении этих переменных теряются.
Static – аналогичный оператору Dim. Отличие: переменные сохраняют свое значение после выхода из процедуры, пока работает программа.
Dim, Private – объявляет переменные на уровне модуля (формы), в котором они описаны, но для других модулей данного проекта не доступны. Объявляются в области описания модуля (перед описанием процедур или функций).
Public – объявляет глобальную переменную на уровне проекта, которая доступна для всех его модулей.
2.4.7 Типы данных
Типы данных относятся к самым фундаментальным понятиям любого языка. Тип данных определяет множество допустимых значений, которое может принимать указанная переменная.
Переменную можно представить как простейший объект программы следующим образом:
Переменная |
||
Логический уровень |
Имя переменной (идентификатор) |
Тип переменной |
Физический уровень |
Область памяти |
Формат представления в памяти |
Имя переменной представляет логический уровень. Оно однозначно связывает переменную с некоторой физической областью памяти. Имена переменных позволяют их различать в программе, осуществлять доступ к различным участкам памяти для записи данных и их извлечения.
Для эффективного использования памяти необходимо правильно выбрать тип переменной. В таблице 1 приведены базовые типы переменных VBA, необходимая для их размещения память и диапазон возможных значений.
Таблица 1 - Основные типы данных
Тип |
Занимаемая память |
Интервалы значений |
|
||||
Целочисленные типы |
|
||||||
Byte (целые числа) |
1 байт |
0…255 |
|
||||
Boolean (логические значения) |
2 байта |
True…False |
|
||||
Integer (целые числа) |
2 байта |
-32768…32767 |
|
||||
Long Integer (длинные целые числа) |
4 байта |
+/-2.1Е9 |
|
||||
Вещественные типы (типы с плавающей точкой) |
|
||||||
Single (одинарной точности с плавающей точкой) |
4 байта |
-3.402823Е38…-1.401298Е-45 для отрицательных чисел 1.401298Е-45…3.402823Е38 для положительных чисел |
|
||||
Double (двойной точности с плавающей точкой) |
8 байт |
-1.7976313486232Е308…-4.94065645841247Е-324 для отрицательных чисел 4.94065645841247Е324…1.7976313486232Е308 для положительных чисел |
|
||||
Строковые типы |
|
||||||
String (текстовая информация - строка фиксированной длины) |
1 байт на каждый символ |
От 1 до 65400 |
|
||||
String (текстовая информация - строка переменной длины) |
10 байт + 1 байт на каждый символ |
От 0 до двух миллиардов символов |
|
||||
Объектные типы |
|
||||||
Object (Рисунок или ссылка на любой другой объект) |
4 байта |
Ссылка на объект |
|
||||
Типы Variant |
|
||||||
|
Variant значения любого из перечисленных типов данных |
16 байт для чисел, 22 байта + 1 байт на каждый символ для строк |
Любое числовое или строковое значение |