Основы программирования на VBA
Условные обозначения:
| – вводится одно из нескольких возможных значений, [ ] – необязательные параметры,
<эинформация, которая должна быть введена пользователем или программой>.
Содержание
-
Зачем это нужно? Возможные задачи.
-
Основные особенности
-
Настройке параметров безопасности.
-
Запись макросов (макрорекордер)
-
Переменные и типы данных
-
Использование Справки (Help)
-
Редактор VBA (излагается на уроках)
-
Построение диалогов и экранных форм
-
Диалоги
-
InputBox
-
InputBox в Excel VBA
-
MsgBox
-
Экранные формы (Forms)
-
Объектная модель Word
-
Вопросы и задания
Зачем это нужно?
VBA (Visual Basic for Applications) – язык программирования фирмы Microsoft, интегрированный в приложения MS Office: Word, Excel, Outlook, Access, PowerPoint, FrontPage, Visio, Project, а также в огромное число прикладных программ других производителей.
Основное назначение языка – предоставить пользователям возможность создать надстройку над приложением, позволяющую эффективно решать собственные задачи. Они могут быть как простейшими, сиюминутными, так и представлять собой проекты колоссальной сложности. Однако литература имеется в изобилии только для двух программ: Access и Excel. Если для первой VBA – язык разработки приложений в среде СУБД, то во втором случае причина, скорее всего, лежит в финансовой обеспеченности задач разработки макросов.
При этом наиболее востребованным инструментом для большинства пользователей остается Microsoft Word, о котором литературные источники по VBA лишь упоминают. В связи с этим, именно данная программа и будет обсуждаться в первую очередь. См. также возможные задачи.
Основные особенности
- Основное назначение VBA – предоставить пользователю возможность избавиться от выполнения рутинных, повторяющихся действий, описав их в виде программ.
- Каждое приложение MS Office имеет свои особенности работы с информацией, свой набор объектов (объектную модель). Это определяет не только набор команд и функций, но и особенности выполнения некоторых из них в разных приложениях. Однако общий синтаксис и правила работы со свойствами объектов, названия функций и системных переменных остаются едиными, что намного облегчает освоение новых приложений.
- При этом VBA является полноценным современным языком программирования, практически полностью идентичным Visual Basic. В нем отсутствуют лишь графические возможности для рисования.
- Значительно упрощены правила работы с переменными. Пользователь может не заботится о присвоении типов, хотя при этом замедляется работа, занимается больше памяти и могут остаться невыявленными некоторые ошибки. (Функция отключаема как системно, так и программно.)
- Многие действия, задаваемые в программе пользователем, в принципе не могут быть выполнены через меню: явное расширение наших возможностей.
Использование Справки (Help)
Справка позволяет многократно упростить работу по редактированию и доработке макропрограмм. Наиболее эффективный способ её использования – установить курсор на слове в тексте программы и нажать горячую клавишу F1. К сожалению, качество подсказки и возможность поиска в ней за несколько последних версий MS Office существенно снизились.
Редактор VBA (VBE)
В связи с тем, что возможно создание двух типов результатов: макросов и форм, внешний вид редактора может несколько различаться.
Ссылки
Учтите, что приводимые ссылки не решат всех ваших проблем. Но, может, вы поймете, что офисное программирование не только доступно каждому. Это – серьезный бизнес, где никто не горит желанием поделиться своими знаниями и навыками. Вы же можете на уроках освоить достаточно многое, чтобы дальше не зависеть ни от кого и развиваться в пределах личных потребностей.
-
Microsoft Office и VBA - Форум программистов.
Вопросы и задания
Большинство заданий дается и разбирается на уроках. Приведенное здесь можно использовать для дополнительной тренировки.
- Записать макрос (построить алгоритм) ввода степени для переменной в математическом выражении.
- В Excel можно получить номер текущей (активной) колонки.
Команда X = ActiveCell.Column присвоит числовой номер колонки переменной X.
Для использования этого значения в указании диапазона, нужно перевести номер в символьное обозначение: Для первой колонки – A, для второй – B, для 26-й – AA и т.д. вплоть до 256.
Задание: написать программу, производящую такой перевод.
Примечание. Лучше сделать функцию, принимающую числовой аргумент номера колонки.