Руководство для MS Office 2010
.pdfоператоры
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