Руководство для MS Office 2010
.pdfпосле нажатия клавиши ВВОД, нажмите [OK].
Выполните действия, назначаемые макросу:
вставьте новый лист – на вкладке Главная в списке кнопки Вставить
выберите Вставить лист;
в ячейку А1 введите аббревиатуру вуза – БГЭУ и нажмите [Enter];
в ячейку А1 вставьте примечание, для этого на вкладке Рецензирова-
ние нажмите кнопку [Создать примечание] и в появившейся рамке вве-
дите полное наименование вуза – Белорусский государственный эконо-
мический университет;
в ячейку А2 введите адрес вуза – Партизанский проспект, 26 и
нажмите [Enter].
Остановите запись макроса.
Проверьте работу макроса, запустив его по имени из окна Макрос.
Просмотрите программный код макроса:
откройте скрытую персональную книгу макросов кнопкой [Отобра-
зить] на вкладке Вид в группе Окно;
в открывшемся окне Вывод на экран скрытого окна книги выбери-
те PERSONAL.XLSB и нажмите [OK];
откройте окно Макрос, выделите макрос ЗаданиеЕ3 и нажмите [Из-
менить]. На экране отобразится окно (рис. 9.7) с программным кодом со-
зданного макроса. Как видно, данный макрос записан с абсолютными ссылками на ячейки. Для выполнения действий с ячейками, обращение к ним задается с помощью объекта Range.
141
Рис. 9.7 Программный код макроса ЗаданиеЕ3
Закройте окно Microsoft Visual Basic.
Скройте личную книгу макросов PERSONAL кнопкой Скрыть на вкладке
Вид в группе Окно.
Примечание. Обязательно выберите команду Скрыть перед сохранением личной книги макросов, иначе книга PERSONAL будет открываться при каждом запуске Excel.
Сохраните книгу Макросы_Excel.
Задание 13. В среде Excel создать на ленте вкладку Фамилия (назвать своей фамилией) c группой Мои макросы, на которой разместить кнопки для за-
пуска созданных макросов.
Р е к о м е н д а ц и и п о в ы п о л н е н и ю
В книге Макросы_Excel создайте вкладку Фамилия на ленте аналогично заданию 6.
На вкладке Фамилия создайте кнопки для запуска макросов аналогично заданию 7.
Сохраните книгу Макросы_Excel.
Задание 14. Продемонстрировать преподавателю результаты работы в файле Макросы_Excel с вкладкой Фамилия, включающей 3 кнопки для запуска макросов [ЗаданиеE1], [ЗаданиеE2], [ЗаданиеE3].
142
Задание 15. Удалить созданные макросы и созданную вкладку на ленте.
Задания для самостоятельной работы
Задание 16. В среде Word создать макрос, который выделенное слово заклю-
чает в квадратные скобки.
Задание 17. В среде Excel создать макрос, который в ячейку, активную в мо-
мент запуска макроса, вставляет сумму ячеек, расположенных слева и справа от нее.
143
9.2 Программирование в среде VBA
9.2.1 Настройка рабочей среды редактора Visual Basic
Настройка рабочей среды редактора Visual Basic предполагает акти-
визацию необходимых окон (рис. 9.8):
окно проекта Project – по умолчанию располагается в левом верхнем углу редактора и отображает иерархическую структуру проектов файлов, откры-
тых в данный момент, и объектов, содержащихся в этих файлах.
окно свойств Properties – располагается в левом нижнем углу редактора и содержит свойства объекта, выделенного в окне Project.
окно программного кода Code – открывается при создании модуля в пра-
вой части окна редактора и отображает программный код выделенного моду-
ля. Если оно распахнуто, то его название не видно.
Рис. 9.8 Окно редактора Visual Basic, открытое в приложении Excel
144
Задание 1. Изучить интерфейс и настроить рабочую среду редактора Visual
Basic. В папке Программирование создать книгу VBA_Excel.xlsm. В проекте этой книги создать два модуля с именами Подпрограммы и Функции
для последующего размещения в них процедур.
Р е к о м е н д а ц и и п о в ы п о л н е н и ю
Откройте табличный процессор Excel и сохраните созданную по умолчанию книгу с именем VBA_Excel.xlsm (тип файла выбрать Книга Excel с под-
держкой макросов) в папке Программирование.
Откройте редактор Visual Basic кнопкой [Visual Basic] на вкладке Разра-
ботчик в группе Код. В открывшемся окне редактора могут быть открыты различные окна.
Закройте в окне Microsoft Visual Basic все вложенные окна.
Активизируйте окно проекта Project (рис. 9.9) командой View/Project Explorer.
Активизируйте окно свойств Properties командой View/ Properties Window.
Перейдите из редактора Visual Basic в окно приложения с помощью кноп-
ки с изображением значка приложения (для Excel – кнопка [View Microsoft Excel]) или с помощью кнопок приложений на панели задач.
Примечание! Не путать кнопку с кнопками закрытия окон .
Создайте в проекте рабочей книги VBA_Excel.xlsm два модуля:
снова перейдите в редактор Visual Basic;
в окне Project выделите проект VBAProject(VBA_Excel.xlsm) и
вставьте модуль командой Insert/Module;
в окне Properties на вкладке Alphabetic в поле (Name) введите новое имя модуля – Подпрограммы и нажмите [Enter];
аналогично вставьте второй модуль и задайте ему имя Функции. В ре-
зультате окно редактора будет иметь вид, представленный на рис. 9.9.
Примечание. Для удаления созданного модуля, необходимо щелкнуть на нем правой кла-
145
вишей мыши и в контекстном меню выбрать команду Remove Module. В открывшемся далее окне нажать кнопку [Нет].
Закройте редактор Visual Basic.
Сохраните книгу VBA_Excel.
9.2.2 Создание процедур-подпрограмм
Каждый модуль проекта может содержать одну или несколько про-
грамм, называемых процедурами, которые складываются из инструкций.
Чаще всего используются процедуры-подпрограммы и процедуры-функции.
Процедуры-подпрограммы включают любые инструкции и ограничи-
ваются инструкциями Sub и End Sub. В общем случае синтаксис записи процедуры-подпрограммы имеет вид:
Sub Имя (аргументы)
инструкции
End Sub
Создание процедур-подпрограмм рассмотрим на примерах в приложе-
ниях Excel и Word.
Задание 2. В книге VBA_Excel в модуле Подпрограммы создать програм-
му, которая вычисляет среднее значение любых трех чисел. Ввод исходных данных и вывод результата осуществить с помощью диалоговых окон.
Р е к о м е н д а ц и и п о в ы п о л н е н и ю В книге VBA_Excel откройте редактор Visual Basic.
В модуле Подпрограммы создайте процедуру согласно заданию:
выделите модуль Подпрограммы и вставьте процедуру командой
Insert/Procedure;
в открывшемся окне Add Procedure в поле Name укажите имя процедуры – Среднее; в группе переключателей Type выберите тип процеду-
ры – Sub (процедура-подпрограмма); в группе переключателей Scope
выберите вид доступа к процедуре – Public (доступна для всех модулей
146
текущего проекта) и нажмите [OK]. В результате в окне программного кода модуля появится заготовка для новой процедуры;
введите текст процедуры (рис. 9.9) между открывающей Public Sub
Среднее() и закрывающей End Sub инструкциями.
Примечание. При вводе текста программы определенные термины выделяются различным цветом в зависимости от их назначения. После нажатия клавиши [Enter] в конце строки выполняется проверка синтаксиса введенной инструкции. При обнаружении ошибки строка выделяется красным цветом и на экран выводится сообщение, поясняющее ее характер. В открывшемся окне, сообщающем об ошибке, нажмите кнопку [ОК]. Ошибочный оператор будет выделен.
Рис. 9.9 Окно кода модуля Подпрограммы с процедурой Среднее
Пояснения по содержанию программы:
Комментарии – пояснительный текст, начинающийся с символа апо-
строф ( ' ) и выделяемый в программе зеленым цветом. Этот текст можно не писать в программу;
Оператор Dim – служит для объявления переменных. Переменная – это имя, которое дается области компьютерной памяти, используемой для вре-
менного хранения данных. Ключевое слово As связывает имя переменной с типом данных. Тип данных определяет множество допустимых значений, ко-
147
торое может принимать переменная, например тип Integer используется для хранения целых чисел от -32768 до +32767; тип Double – для чисел с плава-
ющей точкой примерно от -1,79е308 до 1,79е308.
Инструкция присваивания p=(a1+a2+a3)/3 –вычисляет среднее значение и присваивает результат переменной p.
Функция InputBox организует диалог с пользователем. Функция
MsgBox – организует вывод указанных данных в диалоговом окне.
Запустите процедуру Среднее нажатием клавиши [F5] или командой ме-
ню Run/Run Sub/UserForm или одноименной кнопкой панели инстру-
ментов. В появившемся окне введите первое число, например 8, и нажмите
[ОК]. Затем в следующих окнах введите еще два числа, например 2 и 10,
нажимая после ввода [ОК]. В появившемся окне с результатом выполнения программы нажмите [ОК].
Примечание. При обнаружении ошибки в программе на экран выводится сообщение о ее характере. В окне сообщения нужно нажать [ОК] или [Debug] (в зависимости от вида ошибки). В коде программы ошибочный оператор выделится желтым цветом. Нужно
остановить работы программы кнопкой [Reset], исправить ошибку и запустить программу еще раз.
Закройте окно редактора и сохраните книгу VBA_Excel.
Задание 3. В книге VBA_Excel в модуле Подпрограммы создать програм-
му, которая рассчитывает сумму вознаграждения сотрудника в зависимости от вводимого в диалоговом режиме значения объема продаж по условию: при объеме продаж на сумму до 600 000 руб. вознаграждение составляет 1%; бо-
лее 600 000 руб. – 2%. Вывод результата осуществить в диалоговом окне.
Р е к о м е н д а ц и и п о в ы п о л н е н и ю В книге VBA_Excel откройте редактор Visual Basic.
В модуле Подпрограммы создайте новую процедуру-подпрограмму Воз-
награждение (рис. 9.10).
148
Рис. 9.10 Окно кода модуля Подпрограммы с процедурой Вознаграждение
Пояснения по содержанию программы:
функция InputBox организует диалог с пользователем;
в процедуре выбор действий, зависящих от некоторых условий, осуществ-
ляется условным оператором If (аналогичен встроенной функции Если в
Excel), который может использоваться в различных конструкциях (табл. 9.3).
Таблица 9.3
Синтаксические конструкции оператора If
Вид оператора If |
Алгоритм выполнения |
If (условие) Then |
Используется для проверки одного условия: |
операторы1 |
если условие истинно, то выполняются опе- |
Else |
раторы1; а если условие ложно, то выполня- |
операторы2 |
ются операторы2. Ветвь Else может отсут- |
End If |
ствовать. |
If (условие1) Then |
Используется для проверки нескольких усло- |
операторы1 |
вий: если условие1 истинно, то выполняются |
ElseIf (условие2) Then |
операторы1; а если условие1 ложно, то про- |
операторы2 |
веряется условие2 и т.д. Если ни одно из про- |
ElseIf (условие3) Then |
веряемых условий не выполняется, то рабо- |
операторы3 |
тают операторы. |
Else |
|
операторы |
|
End If |
|
В рассматриваемой процедуре используется оператор If первого вида. |
|
|
149 |
Запустите процедуру Вознаграждение. На экране появится диалоговое окно, в котором введите значение объема продаж, например 25 800, и нажми-
те [ОК]. В открывшемся окне с результатом нажмите [ОК].
Проверьте работу программы на других примерах.
Закройте окно редактора и сохраните книгу VBA_Excel.
Задание 4. В книге VBA_Excel в модуле Подпрограммы создать програм-
му, которая вычисляет сумму значений ячеек А1:А9 и записывает результат в ячейку А10.
Р е к о м е н д а ц и и п о в ы п о л н е н и ю
В книге VBA_Excel перейдите на новый лист, заполните ячейки А1:А9
произвольными числами.
Откройте редактор Visual Basic.
В модуле Подпрограммы создайте новую процедуру-подпрограмму
СуммаЯчеек (рис. 9.11).
Рис. 9.11 Окно кода модуля Подпрограммы с процедурой СуммаЯчеек
Пояснения по содержанию программы:
В процедуре организация циклов с фиксированным числом шагов осу-
ществляется оператором цикла FOR, который используется в следующей конструкции:
FOR счетчик=начало Tо конец Step приращение
150