- •Оглавление
- •Предисловие
- •Введение
- •Общие сведения о vba
- •Структура редактора vba
- •Запуск редактора vba и завершение работы
- •Пользовательский интерфейс редактора vba
- •Окно Project Explorer (Проекта)
- •Окно свойств (Properties)
- •Окно для редактирования кода
- •Окно редактирования форм (UserForm)
- •Программирование на vba
- •Использование модулей и процедур
- •Запуск пользовательских функций
- •Создание новой процедуры
- •Выбор имени
- •Удаление модуля из проекта
- •Представление данных в vba
- •Операции языка vba
- •Инструкции
- •Инструкции объявления (описания)
- •Инструкции присваивания (назначения или присвоения)
- •Выполняемые инструкции (исполняемые инструкции)
- •Инструкции по управлению потоком
- •Объекты в vba
- •Работа с диапазонами
- •Использование свойства Range
- •Использование свойства Cells
- •Работа со свойствами – атрибутами объектов
- •Работа с методами объектов
- •Взаимодействие с пользователем
- •Вывод сообщений с помощью функции MsgBox
- •Вывод сообщений с помощью оператора MsgBox
- •Ввод данных пользователем с помощью окон ввода
- •Использование комментариев в программах vba
- •Создание пользовательских форм в редакторе vba
- •Создание формы
- •Использование элементов управления
- •Свойства элементов управления
- •Методы и события элементов управления
- •Макросы
- •Сервис►Макрос►Макросы…
- •Вопросы для самоконтроля
- •Примеры решения задач в среде программирования vba
- •Разработка программ и алгоритмов линейной структуры
- •С использованием процедуры функции в редакторе Visual Basic;
- •С использованием рабочего листа ms Excel;
- •С использованием форм пользователя в редакторе Visual Basic. Задание 1
- •Создание процедуры функции в редакторе Visual Basic Ход выполнения задания:
- •Создание процедуры подпрограммы с использованием ввода исходных данных и вывода результатов на рабочий лист ms Excel Ход выполнения задания:
- •Создание формы пользователя в редакторе Visual Basic Ход выполнения задания:
- •Разработка программ и алгоритмов разветвляющейся структуры
- •С использованием рабочего листа ms Excel;
- •С использованием форм пользователя в редакторе Visual Basic. Задание 2
- •Создание процедуры подпрограммы с использованием ввода исходных данных и вывода результатов на рабочий лист ms Excel Ход выполнения задания 2:
- •Создание формы пользователя в редакторе Visual Basic Ход выполнения задания:
- •Назначить автофигуре с надписью Задача2 макрос Zadanie2, выбрав пункт контекстного меню Назначить макрос...
- •Разработка программ и алгоритмов циклической структуры
- •С использованием процедуры функции в редакторе Visual Basic;
- •С использованием встроенных диалоговых окон (окна ввода, окна сообщения) в процедуре подпрограммы. Задание 3
- •Создание процедуры функции в редакторе Visual Basic
- •Использование окон сообщений и окон ввода
- •Разработка программ и алгоритмов с использованием массивов Задание 4
- •Ход выполнения задания 4:
- •Заключение
- •Библиографический список
- •Интернет ресурсы
- •Предметный указатель
Программирование на vba
Использование модулей и процедур
Модуль – это именованная единица, состоящая из одной или нескольких процедур, а также объявлений, относящихся ко всем процедурам в модуле.
Процедура – наименьшая единица программного кода, на которую можно ссылаться по имени. Может выполняться независимо. VBA содержит виды процедур:
Процедура Function (Функция) выполняет действие в пределах своего блока и возвращает единственное значение в ту процедуру, откуда была вызвана процедура. Процедуры – функции VBA используются для создания пользовательских функций, которые позволяют проводить вычисления, выполнение которых с помощью формул, основанных на встроенных функциях MS Excel невозможно или неудобно.
Процедура типа Sub (подпрограмма) - универсальная процедура для выполнения различных заданий в VBA, возвращает множество значений.
Обзор области определения (видимости)
Каждая VBA – процедура имеет свою вполне определенную область видимости. Область видимости определяет, из какой части программы можно вызвать эту процедуру, а из какой – нет.
Типы видимости:
Общие или открытые (Public) – процедуры можно вызвать из любой части программы – из того же модуля, из другого модуля и даже из другого проекта. Имя процедуры функции появляется в списке встроенных функций fx в категории Определенные пользователем.
Личная или локальная (Private) – будет видима только внутри содержащего ее модуля. Т.е. можно вызвать локальную процедуру из других процедур того же модуля, но не из процедур, размещенных в других модулях.
Синтаксис процедуры Function
Public Function Имя_функции ([аргументы])[as Type]
Операторы функции
End Function
Функция всегда возвращает значение вызвавшей её процедуре в имени функции. Последний оператор функции является оператором, назначающим окончательный результат вычисления функции описания Имя – функции.
Если аргументы указаны, то процедура будет требовать эти аргументы при выполнении своей работы. Внутри самой процедуры аргументы играют ту же роль, что и переменные объявленные самым обычным способом.
Например:
Public Function S(r)
Pi=3.14159
S=pi*r^2
End Function
Аргументы можно не указывать, если они в процедуре в дальнейшем объявлены.
Например:
Public Function S()
Pi=3.14159
r=5
S= Pi *r^2
End Function
Запуск пользовательских функций
Внести имя функции через строку формул (или в ячейку). Например, =S() (локальных и для глобальных переменных процедур)
Использование мастера функций для глобальных переменных процедур). Например, используя команду Вставка Функция… или кнопка fx . В диалоговом окне выбрать категорию Определенные пользователем и имя функции (S).
Синтаксис для описания процедур типа Sub (подпрограммы)
Public Sub Имя процедуры (аргументы)
Операторы процедуры
End Sub
Создание новой процедуры
Создать новый модуль
Добавить новую процедуру можно после активизации модуля:
используя команду горизонтального меню Insert ►Procedure;
через команду контекстного меню Insert ►Procedure;
используя кнопку на панели инструментов Стандартная;
диалоговое окно Add Procedure (Добавление (вставка) процедуры) (рис. 7.).
Рис. 7. Диалоговое окно Add Procedure
Ввести имя процедуры в поле Name (Имя).
Выбрать с помощью переключателей Type (Тип) и Scope (Область определения (видимости)).
Установить при необходимости флажок All Local variables as Statics (Считать все локальные переменные статистическими).
