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

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

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

операторы

Next счетчик

Переменная счетчик задает количество циклов выполнения операторов.

Она изменяется от значения начало до значения конец с шагом приращение.

Запись Step приращение может отсутствовать при шаге 1.

Доступ к содержимому ячеек можно осуществлять с помощью объекта

Cells(i,j), где i – номер строки, j – номер столбца, на пересечении которых находится ячейка.

Запустите процедуру СуммаЯчеек, перейдите в Excel и просмотрите ре-

зультат.

Закройте окно редактора и приложения Excel, сохранив книгу VBA_Excel.

Задание 5. В документе VBA_Word в модуле Подпрограммы создать до-

ступную для всех документов программу, которая в текстовом документе знаки длинное тире «—» заменяет на знаки короткого тире «–».

Р е к о м е н д а ц и и п о в ы п о л н е н и ю Откройте текстовый процессор Word.

Сохраните созданный по умолчанию документ с именем VBA_Word.docm

в папке Программирование.

Откройте редактор Visual Basic.

Активизируйте окна проекта Project и свойств Properties, если их нет.

Создайте в проекте VBA_Word новый модуль Подпрограммы.

В модуле Подпрограммы создайте процедуру-подпрограмму ЗаменаТи-

ре (рис. 9.12).

151

Рис. 9.12 Окно кода модуля Подпрограммы с процедурой Word_VBA

Пояснения по содержанию программы:

Инструкция ActiveDocument.Characters.Count считает число символов в текущем документе.

Инструкция ActiveDocument.Characters(i) выбирает i-ый символ.

Инструкция ActiveDocument.Characters(i).Select выделяет i-ый символ.

Функция Chr(n) возвращает строку из одного символа, соответствую-

щего коду символа n. (n принимает значения от 0 до 255). Например, Chr(11)

= « », Chr(13) = «¶».

Примечание. Код символа можно просмотреть в поле Код знака окна Символ (открывается на вкладке Вставка), выбрав в списке Шрифт – (обычный текст), в списке из

ASCII(дес.)

Инструкция Selection.Text заменяет выделенный текст.

Проверьте работу программы:

перейдите из редактора Visual Basic в окно приложения;

скопируйте в документ Word с любой Web-страницы фрагмент текста,

содержащего длинные тире (—) или вставьте эти знаки в текст командой

Вставка/Символ;

выделите текст и запустите процедуру ЗаменаТире из окна Макрос.

Закройте приложение Word, сохранив документ.

152

9.2.3 Создание процедур-функций

При работе в Excel часто возникает необходимость в вычислениях,

для которых нет подходящей функции. В этом случае можно создать пользо-

вательскую функцию. Пользовательские функции работают аналогично встроенным функциям и могут использоваться только в формулах ячеек ра-

бочего листа. Отличие этих функций от командных макросов состоит в том,

что они используют значения, передаваемые их аргументам, производят не-

которые вычисления и возвращают результат в точку вызова.

Пользовательские функции Excel это VBA процедуры-функции, ко-

торые ограничиваются инструкциями Function и End Function. Внутри обя-

зательно должна находиться инструкция присваивания некого значения име-

ни функции. Имя функции должно быть уникальным, не содержать пробелов

исимволов пунктуации.

Вобщем случае синтаксис записи процедуры-функции имеет вид:

Function Имя ([аргументы])

инструкции

Имя_функции=выражение

End Function

Задание 6. В книге VBA_Excel в модуле Функции создать пользовательскую функцию СуммаСкидки для расчета в таблице Сведения о продажах

(рис. 9.13) суммы скидки в зависимости от выручки от продаж по условию:

для выручки на сумму до 200 000 руб скидка не начисляется; на сумму от

200 000 до 300 000 руб – скидка 3%; от 300 000 до 400 000 руб – 5%; от

400 000 до 500 000 руб – 6%; более 500 000 руб – 8%.

Р е к о м е н д а ц и и п о в ы п о л н е н и ю

В книге VBA_Excel создайте таблицу Сведения о продажах (рис. 9.13).

153

Рис. 9.13 Таблица Сведения о продажах

Для столбцов Цена товара и Сумма скидки установите денежный фор-

мат с отображением двух знаков после запятой.

Откройте редактор Visual Basic.

В модуле Функции вставьте процедуру-функцию с именем СуммаСкид-

ки, типа – Function, вида доступа к процедуре – Public.

Введите аргументы функции СуммаСкидки() Продажа и Цена и текст процедуры (рис. 9.14).

Рис.9.14 Окно кода модуля Функции с процедурой СуммаСкидки

154

Примечание. Аргументы функции перечисляются через запятую.

Закройте редактор Visual Basic.

Вычислите сумму скидки в таблице:

в ячейку D4 командой Вставка/Функция из категории Определенные пользователем вставьте функцию СуммаСкидки и нажмите [ОК];

в окне Аргументы функции в поле Продажа введите ссылку В4

щелчком мыши по этой ячейке на рабочем листе, в поле Цена С4 и

нажмите [ОК]. В результате в ячейке D4 появится формула: =СуммаСкидки(B4;C4)

скопируйте формулу из ячейки D4 в диапазон D5:D9 с использовани-

ем маркера автозаполнения.

Сохраните книгу VBA_Excel.

Задание 7. Продемонстрировать преподавателю результаты работы проце-

дур Среднее, Вознаграждение и СуммаЯчеек, использование функции

СуммаСкидки в файле VBA_Excel и результаты работы процедуры Заме-

наТире в файле VBA_Word.

Задания для самостоятельной работы

Задание 8. В Excel создать программу, которая рассчитывает сумму скидки на покупку мебели по вводимому в диалоговом режиме значению суммы по-

купки по условию: при покупке на сумму до 2 000 000 руб. скидка составляет

2%; более 2 000 000 руб. – 4%. Вывод результата осуществить в диалоговом окне.

Задание 9. В Excel создать программу, которая вычисляет среднее значение чисел, расположенных в ячейках В1:В10 и заносит результат в ячейку В12.

155