<<
>>

ОСНОВЫ ПРОГРАММИРОВАНИЯ НА VBA

Тип данных определяет множество допустимых значений, которые может принимать указанная переменная (табл. 5.7.1).

Основные типы данных VBA

Таблица 5.7.1

Имя типа Возможные значения Требуемая память, байты
Byte (байт) 0...
255
1
Boolean (логический) True, False 2
Integer (целое число) -32 768... +32 767 2
Long (длинное целое число) -2 147 483 648 ... +2 147 483 647 4
Decimal (масштабируемое ) Примерно 30 десятичных цифр. Можно указать число цифр после десятичной точки 12
Single (число с плавающей запятой) -3,4Е38... -1Д9Е-324 для отрицательных значений

4.9Е-324... 1.7Е308 для положительных значений

8
Double (число с плавающей запятой двойной точности) От -1,79769313486232Е308 до -4,94065645841247Е-324 для отрицательных значений; от 4,94065645841247Е-324 до 1,79769313486232Е308 для положительных значений 8
Currency (денежный) От -922 337 203 685 477,5808 до 922 337 203 685 477,5807 8
String (строка) Строки фиксированной длины имеют до 216 символов. Строки переменной длины имеют ДО 231 символов 10 + 1 на символ
Date (дата и время) Даты изменяются в диапазоне от 1 января 100 года до 31 декабря 9999 года 8
Object (объект) Ссылка на объект (указатель) 4
Variant (строковые подтипы) Универсальный тип, значением которого могут быть данные любого из перечисленных выше типов Зависит от контекста, но не менее 16

В программах можно использовать стандартный набор операций над данными.

Имеются три основных типа операций:

• математические — выполняются над числами, их результатом является число;

• отношения — применяются не только к числам, их результатом является логическое значение;

• логические — используются в логических выражениях, их результатом является логическое значение.

Ниже приведены операции VBA указанных и дополнительных категорий:

Математические операции [Операнд 1] + [Операнд2] Сложение

[Операнд 1] — [Операнд2] Вычитание

—[Операнд] Перемена знака

[Операнд 1] * [Операнд2] Умножение

[Операнд 1] / [Операнд2] Деление

[Операнд 1] \ [Операнд2] Целочисленное деление

[Операнд I ] Mod [Операнд2] Остаток от деления по модулю

[Операнд 1] А [Операнд2] Возведение в степень

Например: а = 10 Ь = 3 с = а*Ь d = -Ь f = a Mod Ь

Результат: с=30; d=—3\f=\

Операции отношения [Операнд 1] < [Операнд2] Меньше

[Операнд 1] > [Операнд2] Больше

[Операнді] = [Операнд2] Больше или равно

[Операнді] [Операнд2] Не равно

[Операнді] = [Операнд2] Равно

[Операнді] Is [Операнд2] Сравнение двух операндов, со

держащих ссылки на объекты

[Операнді] Like [Операнд2] Сравнение двух строковых выра

жений

Логические операции

[Операнд 1] And [Операнд2] Логическое умножение

[Операнд 1] Or [Операнд2] Логическое сложение

[Операнд 1] Not [Операнд2] Логическое отрицание

Другие операции

[Строкаї] & [Строка2] Сложение строк. Для сложения

строк допустимо использование операции [Строка1]+[Строка2], но предпочтительнее во избежание путаницы применять операцию со знаком &

Например: d = 15

st = "Арбат" address = st & ","&d

В результате переменной adrress присвоено значение Арбат, 15. Описание типа каждой переменной ускоряет работу программы и делает ее более надежной. Для объявления переменных используется оператор Dim. Переменные, описанные с помощью инструкции Dim на уровне модуля, доступны для всех процедур в данном модуле. Переменные, описанные на уровне процедуры, доступны только в данной процедуре.

Инструкция Dim предназначена для описания типа данных переменной на уровне модуля или процедуры. Например, следующая инструкция описывает переменную с типом Integer.

Dim N As Integer

Объявление простых переменных имеет следующий синтаксис:

Dim [as ]

[, [as ]]...

Инструкция Dim предназначена также для описания объектного типа переменных. Далее приводится описание переменной для нового экземпляра рабочего листа: Dim XAs New Worksheet.

Если при описании объектной переменной не используется ключевое слово New, то для использования объекта, на который ссылается переменная, существующий объект должен быть присвоен переменной с помощью инструкции Set.

Если тип данных или тип объекта не задан и в модуле отсутствует инструкция Dejbm, по умолчанию переменная получает тип variant. Для обязательного описания всех переменных надо поместить в начале модуля инструкцию Option Explicit. Использование этой инструкции полезно при отладке программ, так как она позволяет легче отслеживать возможную путаницу в именах при наборе программы.

Допустимые имена. Вводимые пользователем имена должны отражать суть объекта, чтобы сделать программу легко читаемой. В VBA имеются следующие ограничения на имена:

1) длина имени не должна превышать 255 символов;

2) имя не может содержать точек, пробелов, символов: %, $, @,

3) имя начинается с буквы и содержит любую комбинацию букв, цифр и символов;

4) имена должны быть уникальны внутри области, в которой они определены;

5) нельзя использовать имена, совпадающие с ключевыми словами VBA.

Примеры имен:

η

к_нач

процентная_ставка

Массив — совокупность однотипных индексированных переменных. Как правило, используются массивы с одним, двумя и тремя индексами. Количество индексов массива говорит о его размерности.

Примеры:

Dim А(3, 3) As Single

Dim B(IO) As Integer

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

В VBA имеются три категории инструкций:

1) инструкции описания;

2) инструкции присваивания;

3) исполняемые инструкции.

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

Операторы присваивания — это основное средство изменения состояния. Они служат для изменения значения переменных и свойств объектов. Оператор присваивания присваивает значение выражения переменной, константе или свойству объекта и всегда включает знак равенства (=).

Синтаксис:

[Let] Переменная (или Постоянная или Свойство

объекта) = Выражение

Инструкция Let необязательна и чаще всего опускается. Оператор присваивания предписывает выполнить выражение, заданное в его правой части, и присвоить результат переменной, имя которой указано в левой части. В результате, например, действия пары операторов х=2их=х+2 переменной х будет присвоено значение 4.

Управляющие операторы представлены в табл. 5.7.2. В число управляющих операторов входят условный оператор, оператор выбора, оператор перехода и различные операторы задания циклов.

Таблица 5.7.2

Управляющие операторы

Оператор Действие
1 2
GoTo Оператор безусловного перехода Синтаксис:

Go То Строка

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

IfThen Else Оператор условного перехода Синтаксис:

If Условие7У?е/7 [Инструкции][E/se Инструкции _e/se]

Если «Условие» принимает значение True, то выполняется инструкция (или инструкции) после Then, если False, то выполняется инструкция (или инструкции) после Else. Ветвь Else является необязательной.

Допускается также использование формы синтаксиса в виде блока:

/f Условие Then

1 2
[Инструкции]

[Elself Условие-л Then [Инструкции elseif\... [Else

[Инструкции else]] Endlf

Select Case Оператор выбора Синтаксис:

Select Case выражение-тест [Case списокВыражений-1 [инструкции-1]]

[Case списокВыражений-n [инструкции-л]]

[Case Else [инструкции_е/ее]]

End Select

For — Next Синтаксис:

For Счетчик = Начало To Конец [Step Шаг]

[Инструкции]

[Exit For]

[Инструкции]

Next [Счетчик]

Повторяет выполнение группы инструкций, пока «Счетчик» изменяется от начального значения до конечного с указанным шагом. Если шаг не указан, то он полагается равным 1. Альтернативный способ выхода из цикла предоставляет инструкция Exit For

For Each — Next Синтаксис:

For Each Элемент In Группа [Инструкции]

[Exit For]

[Инструкции]

Next [Элемент]

Повторяет выполнение группы инструкций для каждого элемента массива или семейства. Альтернативный способ выхода Exit For

Do — Loop While Синтаксис:

Do

[Инструкции]

[Exit Do]

[Инструкции]

Loop [While Условие]

Повторяет выполнение набора инструкций, пока условие имеет значение True. Сначала выполняется инструкция, а потом проверяется условие. Альтернативный способ выхода из цикла предоставляет инструкция Exit Do

Do While - Loop Синтаксис:

Do [While Условие] [Инструкции]

[Exit Do] [Инструкции]

1 2
Loop

Повторяет выполнение набора инструкций, пока условие не примет значение True. Условие проверяется после выполнения инструкции по крайней мере один раз. Альтернативный способ выхода из цикла предоставляет инструкция Exit Do

Примеры:

1) If а>10 Then b=a+2 Else b=0

Переменная b принимает значение в зависимости от значения а;

2) Select Case Цена

Select Is > 5000

Скидка = 10¾

Select Is > 2000 Скидка = 1%

Select Is > 1000 Скидка = 5¾

End Select

В зависимости от значения переменной «Цена» после выполнения оператора Case будет присвоено значение переменной «Скидка».

Элементы управления. VBA обладает встроенным набором элементов управления. Элементы управления создаются при помощи панели инструментов «Элементы управления». Основные элементы управления здесь те же, что и на панели инструментов «Элементы управления» в приложении Access. Элементы управления являются объектами и, как любые объекты, обладают свойствами, методами и событиями. Элементы управления можно располагать на рабочем листе и в форме.

Наиболее часто используемыми элементами управления являются «Поле», «Надпись», «Кнопка», «Переключатель».

Каждый установленный элемент управления требует написания кода, связанного с ним. Код обработки событий создается на листе модуля.

<< | >>
Источник: В.М. Maтюшка. Информатика для экономистов: Учебник / Под общ. ред. В.М. Maтюшка. - M.: ИНФРА-М,2007. - 880 с.. 2007

Еще по теме ОСНОВЫ ПРОГРАММИРОВАНИЯ НА VBA:

  1. ХАРАКТЕРИСТИКА ЯЗЫКА VBA
  2. Методические основы стратегического планирования и программирования развития отраслевого комплекса
  3. Основные этапы развития технологий программирования Программирование в кодах и ассемблер
  4. • Принцип оптимальности в планировании и управлении, общая задача оптимального программирования • Формы записи задачи линейного программирования и ее экономическая интерпретация • Математический аппарат • Геометрическая интерпретация задачи • Симплексный метод решения задачи 2.1. Принцип оптимальности в планировании и управлении, общая задача оптимального программирования
  5. Тексты процедур на VBA к главе 1
  6. Язык программирования
  7. Модульное программирование
  8. Языки программирования высокого уровня
  9. Программирование государственных финансов
  10. Программирование, управляемое событиями
  11. 3.3. Целочисленное программирование
  12. 2.2. Формы записи задачи линейного программирования и ее экономическая интерпретация
- Информатика для экономистов - Антимонопольное право - Бухгалтерский учет и контроль - Бюджетна система України - Бюджетная система России - ВЭД РФ - Господарче право України - Государственное регулирование экономики в России - Державне регулювання економіки в Україні - ЗЕД України - Инновации - Институциональная экономика - История экономических учений - Коммерческая деятельность предприятия - Контроль и ревизия в России - Контроль і ревізія в Україні - Кризисная экономика - Лизинг - Логистика - Математические методы в экономике - Международные экономические отношения - Микроэкономика - Мировая экономика - Муніципальне та державне управління в Україні - Налоговое право - Организация производства - Основы экономики - Политическая экономия - Размещение производительных сил (РПС) - Региональная и национальная экономика - Страховое дело - Теория управления экономическими системами - Управление инновациями - Философия экономики - Ценообразование - Экономика зарубежных государств - Экономика и управление народным хозяйством - Экономика отрасли - Экономика предприятия - Экономика природопользования - Экономика труда - Экономическая безопасность - Экономическая география - Экономическая демография - Экономическая статистика - Экономическая теория и история - Экономический анализ -