Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Руководство для MS Office 2010

.pdf
Скачиваний:
43
Добавлен:
20.02.2016
Размер:
4.12 Mб
Скачать

после нажатия клавиши ВВОД, нажмите [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 счетчик=начало конец Step приращение

150