Visual Basic for Applications (VBA)




Это средство программирования, практически ничем не отличающееся от классического Visual Basic, которое предназначено для написания макросов и других прикладных программ для конкретных приложений. Наибольшую популярность получил благодаря своему использованию в пакете Microsoft Office. Широкое распространение Visual Basic for Applications в сочетании с изначально недостаточным вниманием к вопросам безопасности привело к широкому распространению макровирусов.

5. Интерактивная разработка в Visual Basic

Интегрированная среда разработки приложений, или IDE (Integrating Development Environment) (см. рис. 18) - это важная составная часть Visual Basic. Именно здесь выполняется основная работа над приложением.

Рисунок 18 – Интегрированная среда разработки приложений IDE

IDE состоит из следующих компонентов (см. рис. 18):

1. Строка меню. Обеспечивает доступ к командам, управляющим средой программирования.

2. Панель инструментов. Ускоряет доступ к некоторым командам меню.

3. Окно дизайнера форм. Служит для визуального конструирования маке­та формы и размещения на нём управляющих элементов, кроме того, в этом окне производятся ввод и редактирование текста программы.

4. Панель элементов. Содержит интерфейсные элементы для создаваемого приложения.

5. Окно проводника проекта. Показывает список форм и модулей текущего проекта. (Проект – это набор файлов, используемых для построения приложения).

6. Окно свойств. Позволяет изменять характеристики интерфейсных элементов.

7. Окно макета формы. Показывает, как выглядит форма и где она нахо­дится во время выполнения программы.

8. Кнопка для перехода к окну кодов.

9. Кнопка для перехода к окну дизайнера формы.

6. Элементы Visual Basic

Основным элементом Windows-интерфейса является «окно». В Visual Basic этот объект называется формой. Это контейнер, на котором располага­ются все остальные элементы управления. Таким образом, создание интер­фейса сводится к размещению на форме управляющих элементов. К ним относятся: кнопки, текстовые поля, надписи, переключатели, флажки, рамки, списки, комбинированные поля, рисунки, изображения и т. д.

Кнопки (CommandButton) используются для решения самых разных задач - от простейшего ввода информации до вызова специальных функций.

Текстовые поля (TextBox) применяются для ввода данных или получения информации от пользователя, а также в некоторых случаях для вывода информации.

Надписи (Label) служат для размещения на форме текста, чисел и символов, а также, как и текстовые поля, для вывода информации. Главное отличие надписей от текстовых полей заключается в том, что пользователь (не программист) не может изменить текст надписи по своему усмот­рению.

Переключатели (OptionButton) позволяют выбрать один (и только один) вариант из группы. Обычно переключатели группируются в рамках, однако их можно группировать прямо на форме, если ис­пользуется только одна группа переключателей.

Флажки (CheckBox) отчасти похожи на переключатели, однако работают независимо друг от друга.

Рамки (Frame) используются в сочетании с другими элементами. Внутри рамки можно разместить любые элементы. Они группируются и в случае перемещения рамки двигаются вместе с ней.

Списки (ListBox) - это идеальное средство для работы с перечнем из нескольких вариантов. Пользователь может просмотреть содержимое списка и выбрать одну или несколько строк для последующей обработки. Прямое редактирование содержимого списка невозможно.

Комбинированные поля (ComboBox) сочетают возможности текстового поля и списка. Они позволяют выбрать из списка заранее определенную строку или ввести значение, которого нет в списке. Важной особенностью комби­нированного поля является то, что оно может быть раскрывающимся. Это дает возможность экономить место на форме.

Графические поля (PictureBox) часто используются для отображения графических файлов. Кроме того, во время выполнения программы в поле рисунка можно выводить текст и рисовать с помощью различ­ных методов. Но самое главное заключается в том, что рисунок мо­жет выполнять функции контейнера, т. е. в него можно поместить кнопку или другой элемент.

Изображения (Image) являются упрощенным вариантом рисунков. В отличие от рисунков изображения не могут выполнять функции контейнера и подходят только для простейшего вывода картинок на форме, однако занимают гораздо меньше памяти, чем рисунки.

Полосы прокрутки (VScrollBar, HScrollBar) обычно применяются для изменения величины в пределах непрерывной шкалы. Элемент поло­сы прокрутки представляет собой совершенно независимый объект, не привязанный к другим элементам (текстовым полям или спискам). Горизонтальная и вертикальная полосы прокрутки ничем не отлича­ются друг от друга, кроме ориентации.

7. Панель инструментов ToolBox

Редактор VBA предоставляет важнейшие и наиболее часто используемые команды в виде кнопок на панели инструментов. По умолчанию Редактор VBA отображает только панель инструментов Standard, показанную на рис. 2. В конце панели, справа, находится кнопка More Buttons . Если необходимо удалить с панели или добавить некоторые кнопки на панель Standard, надо нажать на эту кнопку, а затем указать соответствующую кнопку в появляющемся меню.

Рис. 2. Панель инструментов Standard

Кроме панели Standard Редактор VBA предлагает еще три панели: Edit (правка), Debug (отладка) и UseForm. Панель Edit Редактора VBA содержит несколько командных кнопок, полезных при редактировании текста в Code Window (окне редактирования программ).

Для управления отображением панелей инструментов используется команда View ®Toolbars (вид ® панели инструментов). Так какредактор VBA по умолчанию не отображает панель Edit, ее нужно выводить на экран вручную.

Панель инструментов Standard содержит 19 кнопок. Каждая кнопка является быстрой командой меню.

Таблица 1. Кнопки панели инструментов Standard

Кнопка Действие
   
View Microsoft Excel Переключает на host-приложение VBA, из которого был запущен Редактор VBA. Значок этой кнопки изменяется в зависимости от конкретного приложения, из которого запускался редактор VBA
Insert UserForm При щелчке на кнопке со стрелкой отображается список объектов, которые можете вставить в текущий проект:UserForm, Module, Class Module или Procedure. Это можно выполнить и при использовании одноименных команд меню Insert (вставка)
Save Сохраняет текущий проект (команда File ® Save)
Cut Вырезает выделенный текст или объект и помещает его в буфер обмена; (как команда Edit ® Cut)
Сору Копирует выделенный текст или объект в буфер обмена;(команда Edit ® Сору)

Продолжение табл. 1

Paste Вставляет текст или объект из буфера обмена в Code Window (окно редактирования программ) или форму пользователя в позицию курсора (команда Edit ® Paste)
Find Открывает диалоговое окно Find для нахождения определенного слова или фразы в модуле; (команда Edit ®Find)
Can't Undo Отменяет самую последнюю команду, если это возможно (не все действия могут быть отменены); (команда Edit ®Undo)
Can't Redo Возобновляет самую последнюю отмененную команду; так же, (команда Edit ® Redo)
Run Macro Запускает текущую процедуру или форму (команда Run ®Sub/UserForm)
Break Прерывает выполнение программы VBA (команда Run ®Break)
Reset Перезапускает программу VBA (команда Run ® Reset)
Design Mode При нажатии этой кнопки Редактор VBA переходит в режим Design (конструктора) (командой Run ® Design Mode)
Project Explorer Отображает Окно проекта (команда View ® Project Explorer)
Properties Window Отображает Окно свойств (команда View ® Properties Window)
Object Browser Отображает диалоговое окно Просмотр объектов (команда View ® Object Browser)
Toolbox Отображает Панель элементов (команда View ® Toolbox)
Справка: Microsoft Visual Basic Отображает окно Справочной системы Microsoft Office для контекстно-зависимой подсказки по текущей задаче
Cursor position Отображает положение курсора. Эта область панели инструментов Standard, фактически, не является командной кнопкой и появляется только тогда, когда курсор находится в Code Window. Эта область показывает, в какой строке модуля и в каком столбце строки находится курсор вставки
More Buttons Позволяет добавлять или удалять кнопки панели

 

8. Понятие переменной в Visual Basic

Переменная – это величина, значение которой может изменяться. В программах переменные используются для идентификации определенных численных и текстовых значений. Каждая переменная в программе имеет не только название, но и тип. Тип – это параметр переменной, который определяет диапазон хранимого в ней значения, методы его обработки и объем выделяемой памяти.

Таблица 2. Типы данных VBA.

Название типа (символ определения) Размер в байтах одной переменной Описание и диапазон значения
     
Byte   Используется для хранения положительного числа от 0 до 255
Boolean   Используется для хранения логических значений – имеет только значения True или False
Currency (@)   Используется для хранения чисел от –922337203685477,5808 до +922337203685477,5807 Это число с фиксированной точкой – десятичная точка находится в одном и том же месте –справа от десятичной точки всегда находится четыре цифры. Математические операции над такими числами не имеют ошибок округления или они малы. Поэтому операции над такими числами более точны
Date   Используется для хранения комбинации информации о дате и времени. Диапазон дат может быть от 1 января 100 года до 31 декабря 9999 года Диапазон времени от 00:00:00 до 23:59:59
Decimal   Переменные этого типа сохраняются как 96-битовые знаковые целые, масштабируемые значением некоторой степени числа 10. Степень определяет число десятичных знаков справа от десятичной точки и может быть в диапазоне 0 ¸ 28.
     
Double (#)   Используется для хранения дробных чисел (16 десятичных знаков после запятой) Отрицательные числа: от –179.769313486232D+308 до –4. 94065645841247D–324. Положительные числа: от 4.94065645841247D–324 до 1.797693 13486232D+308
Integer (%)   Используется для хранения целого числа от –32768 до +32767
Long (&)   Используется для хранения целого числа от -2147483648 до 2147483647
Object   Используется для доступа к любому объекту, распознаваемому VBA. Сохраняет адрес объекта в памяти
Single (!)   Используется для хранения дробного числа (8 десятичных знаков после запятой) Отрицательные числа: от –3.402823Е38 до –1.401298Е45 Положительные числа: от 1.401298Е-45до3.402823Е38
String ($) (переменной длины) 10 байт + длина строки Используется для хранения текста. Может содержать от 0 символов до (приблизительно) 2 миллиардов символов
String (фиксированной длины) Длина строки (1 байт на символ) Используется для хранения текста. Может содержать от одного до (приблизительно) 654000 символов
Variant 16 байт + 1 байт/символ Тип Variant может хранить любой другой тип данных. Диапазон для данных типа Variant зависит от фактически сохраняемых данных. Этот тип данных является типом данных По-умолчанию. Если в программе отсутствует описание какой либо переменной, то VBA приписывает ей тип Variant.
         

При выборе имени переменной необходимо соблюдать следующие правила:

– имя переменной должно начинаться с буквы алфавита (допускается только латиница);

– после первой буквы имени переменной может стоять любая комбинация цифр, букв или символов подчеркивания (_);

– имена переменных не могут содержать пробелы, точку (.) или любой другой символ, который используется для обозначения математических операций и операций сравнения (=, +, -, /и так далее);

– имена переменных не могут превышать 255 символов;

– имя переменной не может дублировать определенные ключевые слова;

– имя переменной должно быть уникальным в рамках его области действия, то есть имя переменной должно быть уникальным в пределах процедуры или модуля, в котором она объявляется.

Имена переменных не «чувствительны» к состоянию регистра, то есть написание имени переменной прописными или заглавными буквами не имеет значения. Имена FirstMyVar и firstmyvar представляют для VBA одно и то же. При выборе имен переменных надо делать их по возможности наиболее информативными: выбирать имена, подобно AllSum, а не х или у.

9. Понятие константы в Visual Basic

Константа – это значение в программе VBA, которое не меняется.

В коде VBA можно также писать литеральные численные константы и даты. Примеры численных литеральных констант включают числа 36, 3, 14 и 212. Константы можно изменять только редактированием исходного кода VBA.

Константы не должны быть обязательно литеральными. VBA позволяет создавать именованные константы. Именованная константа имеет заданное ей имя; это имя представляет конкретное неизменяемое значение.

Использование именованных констант повышает читабельность процедур, например, процедура, выполняющая геометрические вычисления, легче читается и более понятна, если использовать именованную константу Pi вместо литеральной константы 3,14.

10. Тип переменной в Visual Basic

11. Основные математические операции VBA

Математические операции

[Операнд1] + [Операнд2] Сложение
[Операнд1] - [Операнд2] Вычитание
- [Операнд] Перемена знака
[Операнд1] * [Операнд2] [Операнд1] / [Операнд2] Умножение Деление
[Операнд1] [Операнд2] Целочисленное деление
[Операнд1] Mod [Операнд2] Остаток от деления по модулю
[Операнд1] ^ [Операнд2] Возведение в степень

Операции отношения

[Операнд1]< [Операнд2] Меньше
[Операнд1]> [Операнд2] Больше
[Операнд1]<= [Операнд2] Меньше или равно
[Операнд1]>= [Операнд2] Больше или равно
[Операнд1] <> [Операнд2] Не равно
[Операнд1] = [Операнд2] Равно
[Операнд1] Is [Операнд2] Сравнение двух операндов, содержащих ссылки на объекты
[Операнд1] Like [Операнд2] Сравнение двух строковых выражений

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

[Операнд1] And [Операнд2] Логическое умножение
[[Операнд1] Or [Операнд2] Логическое сложение
[Операнд1] Хоr [Операнд2] Исключающее or (или)
Not [Операнд2] Логическое отрицание

Операции со строками

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

Приоритеты операций

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

Приоритет Операция
  Вызов функции и скобки
  ^
  - (смена знака)
  *, /
   
  Mod
  +, -
  >, <, >=, <=, <>,=
  Not
  And
  Or

 

 

 

12. Математические функции VBA

Математические функции

Для наиболее часто встречающихся функций в алгоритмический язык включаются программы для их вычисления.В таблице 3 приведены математические функции, имеющиеся в VBA. В этой таблице N означает любое численное выражение; все аргументы функций являются обязательными, если только не указано иначе.

Таблица 3. Математические функции VBA

Функции (аргументы) Возвращает/ действие
   
Abs(N) Возвращает абсолютное значение N
Atn(N) Возвращает арктангенс N как угол в радианах
Сos(N) Косинус угла N, где N это угол, измеряемый в радианах
Sin(N) Возвращает синус угла; N – это угол, измеряемый в радианах
Sqr(N) Возвращает корень квадратный из N. VBA отображает ошибку, исполнения, если N – отрицательное
Tan(N) Возвращает тангенс угла; N – угол в радианах
Exp(N) Возвращает константу е, возведенную в степень N. (е – это основание натурального логарифма)
Fix(N) Возвращает целую часть N. Fix не округляет число, а отбрасывает любую дробную часть. Если N является отрицательным, Fix возвращает ближайшее отрицательное целое, большее, чем или равное N
Int(N) Возвращает целую часть N. Int не округляет число, а отбрасывает любую дробную часть. Если N является отрицательным, Int возвращает ближайшее отрицательное целое меньшее, чем или равное N
Log(N) Возвращает натуральный логарифм N
Rnd(N) Возвращает случайное число; аргумент является необязательным. Функцию Rnd используется только после инициализации VBA-генератора случайных чисел оператором Randomize
Sgn(N) Возвращает знак числа: -1, если N отрицательное; 1, если N – положительное; 0, если N равно 0

Дополнительные тригонометрические функции можно выводить из базовых математических функций VBA. Например, если необходимо вычислить котангенс угла, для его нахождения можно использовать формулу 1/Таn(х).

13. Структура процедуры

Процедуры vba

Процедура— именованный набор описаний и инструкций VBA, оформленных в виде программного модуля. Различают следующие типы процедур: подпрограмма Sub, функция Function, свойство Property.

Подпрограмма Sub

Подпрограмма Sub — набор инструкций для реализации алгоритма обработки данных2. Процедура-подпрограмма Sub имеет структуру:

Sub имя ([аргументы])

Инструкции

Exit Sub

Инструкции

End Sub

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

Вызов процедуры Sub из другой процедуры выполняется с помощью инструкции:

Call имя {[параметры]}

Можно не указывать оператор Call, если в описании процедуры Sub используется список аргументов, то ее вызов осуществляется с помощью списка параметров, заменяющих эти аргументы. Если аргументов больше 1 и используется оператор Call, аргументы заключаются в круглые скобки.

Функция Function

Функция Function — набор инструкций, обеспечивающий выполнение обработки и возврат значения определенного типа (число, текст, логическое и т.п.).

Функции используются в вычисляемых выражениях, имеют структуру:

Function имя ([аргументы]) [As тип]

Инструкции

имя = выражение

[Exit Function]

Инструкции

End Function

Параметр As тип позволяет явно задать тип данных, который возвращает функция. Одна из инструкций должна присвоить вычисленное значение имени функции (имя = выражение). Оператор Exit Function обеспечивает немедленный выход из функции. Нельзя включать процедуру функцию в состав процедуры подпрограммы или другой функции. Вызов Function выполняется по аналогии со встроенными функциями; при построении выражений соответствующие пользовательские функции доступны для выбора.

Процедура Property — набор инструкций, обеспечивающий обработку свойств объекта.

 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2019-06-03 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: