9.3. Написание новых макросов и процедур
Нам уже известно, что макросы представляют собой средство, с помощью которого можно описать произвольную последовательность действий пользователя для ее последующего многократного выполнения.
Обычно термин "макрос" применяется для инструкций, которые автоматически записываются с помощью специальных инструментов в приложениях Microsoft Office, а термин "процедура" применяется к коду VBA, который пишется пользователем вручную. Иначе говоря, процедура — это компьютерная программа, которая выполняет некоторые действия с объектами и сохраняется в модуле VBA. С такой, "программной" точки зрения макрос — это тоже процедура типа Sub, не имеющая входных параметров.
Макросы образуют единственный класс процедур типа Sub, которые можно запускать на выполнение непосредственно вызовом их по имени либо из 66редактора VBA, либо из самого VBA-приложения. Написать новый макрос без использования специальных автоматических средств Microsoft Office, т.е. самостоятельно написать соответствующую процедуру типа Sub, можно либо создав в редакторе VBA новый модуль, который будет содержать эту процедуру, либо поместив эту процедуру в уже существующий модуль. Для создания нового модуля необходимо выполнить следующие действия:
-
Убедиться в том, что вы работаете с нужным проектом.
-
Активизировать редактор VBA, нажав клавиши <Alt+Fl 1>.
-
В окне Project Explorer выделить либо сам проект, либо один из его компонентов.
-
Выбрать команду Редактора VBA Insert =>Module (Добавить=> Модуль) или щелкнуть на кнопке Insert панели инструментов Standard и выберите в раскрывшемся меню команду Module.
В результате редактор VBA откроет на экране пустое окно программного кода, предназначенное для создания нового модуля (см. рис.8.8). Следует напомнить, что новому модулю при открытии окна программного кода редактор VBA по умолчанию присваивает типовое имя Module п, где п — порядковый номер модуля, созданного в данном сеансе работы с редактором VBA.
Для того чтобы модуль получил некоторое собственное имя, следует переименовать его. Для этого:
-
Выбрать команду меню View => Properties Window (Вид=>Окно свойств) или щелкнуть на кнопке Properties Window в панели инструментов Standard. На экране раскроется пустое окно свойств вновь создаваемого модуля (см. рис. 9.1).
-
Здесь текстовом поле Name на вкладке Alphabetic окна Properties введите новое имя модуля. Обратите внимание, что модули имеют только одно свойство — Name (Имя).
Рис. 9.1. Окно свойств модуля для ввода его имени
Прежде чем создать новую процедуру в уже существующем модуле, необходимо сначала открыть окно Code для того модуля, в котором предполагается поместить эту процедуру. Для этого щелкните дважды на требуемом модуле в окне Project Explorer либо выделите этот модуль в указанном окне и выберите команду меню View => Code (см. рис. 9.2):
Рис. 9.2. Окно для ввода кода (текста) модуля
Следует ещё раз напомнить, что модули не хранятся в отдельных файлах, а являются частями некоторого проекта, сохраняемого в соответствующем документе VBA-приложения. Чтобы использовать один и тот же модуль в разных проектах (читай, в VBA-документах) его следует скопировать в них.
Для этой цели требуемый модуль можно предварительно экспортировать, создав отдельный файл с его текстом. Потом надо выделить его в Project Explorer, после чего выбрать команду меню File => Export File (Файл => Экспорт файла). В раскрывшемся на экране диалоговом окне нужно указать место сохранения экспортируемого файла и, при необходимости, изменить его имя (рис. 9.3):
Рис. 9.3. Диалоговое окно Export File
Убедитесь, что в списке Тип файла выбрано значение Basic Files (*.bas), указывающее, что расширение имени файла определяет копируемый файл как файл исходного кода VBA (*.bas). Для завершения операции экспорта файла щелкните по кнопке "Сохранить".
Для того чтобы импортировать модуль, т.е. добавить экспортированный ранее файл типа .bas в любой из VBA-проектов, выберите в Project Explorer необходимый проект, а затем выберите команду меню File => lmport File (Файл=>Импорт файла). В раскрывшемся: диалоговом окне Import File надо убедиться, что в списке Тип файла выбрано значение Files of Type (*.frm, *.bas, *.cls) и дважды щелкнуть на имени того файла, который буде импортироваться (диалоговое окно "Import File" – такое же, как на рис. 9.3)
Если по какой либо причине потребуется удалить некоторый модуль из VBA-приложения, выполните следующие действия:
-
Щелчком мыши выделите в окне Project Explorer тот модуль, который требуется удалить.
-
Выберите команду меню File => Remove object_name (Файл =>Удалить имя_объекта). Другой способ — щелкните в окне Project Explorer правой кнопкой на удаляемом модуле и выберите в раскрывшемся контекстном меню Remove object_name.
В любом случае редактор VBA выведет на экран диалоговое окно с предложением предварительно экспортировать удаляемый модуль.
Поместить исходный код процедуры можно, в принципе, в любом месте модуля, независимо от того, добавляете ли вы процедуру в новый или уже существующий модуль.
Для этого поместите курсор в то место в модуле, где необходимо ввести текст новой процедуры. Ключевыми словами для процедур являются операторы Sub и End Sub, т.е. новая процедура должна начинаться оператором Sub, с указанием имени процедуры, и заканчиваться оператором End Sub, который редактор VBA автоматически добавляет в строку, сразу же после того, как был введен оператор Sub.
Если модуль содержит несколько процедур, то новая процедура должна начинаться после оператора End Sub предыдущей процедуры или перед оператором Sub, которым начинается следующая процедура в модуле. Надо обязательно отметить, что основными VBA-процедурами являются процедуры типа Sub (подпрограммы) и процедуры типа Function (функции).
Попробуем на практике создать простейшую процедуру в Word 2007 (или Excel). Предположим, требуется написать простейшую процедуру, которая будет выводить на экран приветствие. Текст ее будет выглядеть так:
Sub Приветствие ()
MsgBox "Привет! Я – ваша первая процедура! "
End Sub
Чтобы всё опробовать, создайте новый модуль с именем Приветствие и введите в окно его программного кода этот текст так, как это показано на рис. 9.4.
Для этого выполните следующие действия:
-
Откройте любой документ Word (или рабочую книгу Excel).
-
Активизируйте редактор VBA, нажав клавиши <Alt+Fl 1 >.
-
В окне Project Explorer выделите проект того документа или рабочей книги, в которой будет создана эта процедура.
-
Для добавления нового модуля к проекту выберите команду Insert => Module. На экране раскроется окно программного кода для вновь созданного модуля.
-
Присвойте новому модулю имя Приветствие и, убедившись, что курсор вставки текста находится в начале первой пустой строки, введите приведенный выше программный текст.
Рис 9.4. Создание процедуры "Приветствие"
ПРИМЕЧАНИЕ 7: чтобы компилятор VBA мог помогать обнаруживать синтаксические ошибки, советуем набирать ключевые слова (sub - процедура, msgbox – блок сообщения) б е з использования з а г л а в н ы х букв. Тогда, если у вас всё верно, он сам в нужных местах перейдет к заглавным буквам. Если же этого не произойдёт, значит, допущена ошибка при записи!
Завершив ввод текста процедуры, надо попробовать ее выполнить. Для этого выберите команду меню редактора VBA Tools => Macros и в диалоговом окне Macros в списке Macro Name выберите процедуру "Приветствие", после чего щелкните на кнопке Run (Выполнить). Другой вариант: если вы уже в редакторе, выберите команду меню Run => Run Sub / UserForm или просто нажмите <F5>. В любом случае в окне Word (Excel) будет выведено окно сообщения с приветствием, записанным в тексте процедуры (рис. 9.5). Для закрытия этого окна щелкните на кнопке ОК.
Рис. 9.5. Результат работы новой процедуры "Приветствие"
- Теоретические разделы курса “информатика”
- Введение
- Раздел 1. Базовые понятия курса “информатика” Глава 1. Введение в экономическую информатику
- Информационные процессы в экономике. Основные понятия информатики и информатизации
- Информация и данные
- Экономическая информация и ее свойства
- Классификация экономической информации
- Структура экономической информации
- Оценка экономической информации
- Вопросы для самоконтроля
- Контрольные тесты
- Глава 2. Программные средства реализации информационных процессов
- 2.1. Назначение и классификация программного обеспечения
- 2.2.1. Базовое программное обеспечение
- 2.2.2. Классификация операционных систем
- 2.2.3. Сервисное программное обеспечение
- 2.3. Инструментарий технологии программирования
- 2.4. Состав и назначение прикладного программного обеспечения
- 2.4.2. Методо-ориентированные пакеты прикладных программ
- 2.4.3. Пакеты прикладных программ общего назначения
- Вопросы для самоконтроля
- Контрольные тесты
- Глава 3. Технические средства реализации информационных процессов
- 3.1. Техническая основа реализации информационных процессов
- Эволюция компьютерных информационных технологий
- Арифметико-логическое устройство
- Устройство управления и интерфейс
- Процессорная память
- 3.2. Поколения электронных вычислительных машин
- 3.3. Классификация технических средств обработки информации
- 3.4. Персональные компьютеры
- 3.5. Структурная схема персонального компьютера
- Системная шина
- Контроллеры Системная плата
- 3.6. Принципы функционирования персонального компьютера
- Установка адреса начальной команды
- 3.7. Основные архитектурные схемы вычислительных систем
- Память команд
- Память команд
- Память команд
- Память данных
- Память команд
- 3.8. Режимы работы компьютеров
- 3.9. Информация в технических устройствах
- Единицы измерения памяти
- Вопросы для самоконтроля
- Контрольные тесты
- Глав 4. Способы представления информации в компьютерах
- 4.1. Системы счисления
- 4.1.1. Позиционные системы счисления
- Системы счисления
- 4.1.2. Перевод чисел из одной системы счисления в другую
- 4.1.3. Двоичная, восьмеричная и шестнадцатеричная системы счисления
- Представление чисел в двоичной, восьмеричной и шестнадцатеричной системах счисления
- 4.1.4. Выполнение арифметических операций в двоичной, восьмеричной и шестнадцатеричной системах счисления
- Сложение в двоичной системе
- Сложение в восьмеричной системе
- Сложение в шестнадцатеричной системе
- 4.2. Представление числовой информации. Прямой, обратный и дополнительный коды числа
- Диапазон значений целых чисел без знака
- Диапазон значений целых чисел со знаком
- 4.3. Представление символьной информации
- 4.4. Представление графической информации
- Вопросы для самоконтроля
- Контрольные тесты
- Глава 5. Логические основы построения персональных компьютеров
- 5.1. Аппарат алгебры логики
- Базовые логические операции
- 5.2. Основные аксиомы и законы алгебры логики
- 5.3. Логические элементы персональных компьютеров
- 5.4. Логические устройства с памятью
- Вопросы для самоконтроля
- Контрольные тесты
- Раздел 2. Основы алгоритмизации и программирования
- Глава 6. Понятие алгоритма и его основные формы
- 6.1. Алгоритм и его свойства
- 6.2. Формы представления алгоритма
- 1. Начало
- 8. Конец
- 6.3. Базовые алгоритмические структуры
- 6.3.2. Ветвящаяся (разветвлённая) структура
- Опер-р 1
- Опер-р 2
- Опер-р 20
- I нач.Знач.
- 6.4. Этапы развития программирования
- Глава 7. Объектно-ориентированное программирование в среде vba (Visual Basic for Application).
- 7.1. Что такое vba?
- 7.2. Основные понятия и элементы языка vba: объекты, свойства, методы, события, классы объектов
- 1. Объекты
- 3. Классы объектов
- Суперкласс
- Глава 8. Макросы в приложениях ms Office
- 8.1. Понятие макроса
- 8.2. Процесс создания макроса
- 8.3. Запуск макроса на исполнение
- АкБарсБанк
- 8.4. Код (текст) программы макроса и пояснения к нему
- 8.5. Корректировка макросов
- 8.6. Сохранение макросов в виде модулей
- Глава 9. Создание и выполнение vba – программ
- 9.1. Понятие об общем цикле создания vba – программы
- 9.2. Общие принципы построения vba-программы
- 9.3. Написание новых макросов и процедур
- 9.4. Выполнение vba-программы
- 9.5. Обработка ошибок
- Глава 10. Основные элементы языка программирования vba
- 10.1 Типы данных в vba.
- 10.2. Переменные vba.
- 10.3. Объявление переменных
- 10.4. Область действия переменной
- 10.5. Присвоение значения переменной
- 10.6. Константы
- 10.7. Массивы
- 10.7.1. Одномерные массивы
- 10.7.2. Многомерные массивы
- 10.8. Статические и динамические массивы
- 10.9. Структура текста программы и комментарии
- Глава 11. Примеры реализации различных макросов и фрагментов программ
- 11.1. Варианты реализации макросов
- 11.1.1. Порядок создания макросов в Excel
- 11.1.2. Задания на создание макросов в Excel
- 11.2. Варианты реализации разветвляющихся алгоритмов
- 11.3. Варианты реализации циклических алгоритмов
- 11.4. Вариант реализации смешанного алгоритма
- Раздел 3. Основы информационной безопасности
- Глава 12. Введение в информационную безопасность
- 12.1. Понятие информационной безопасности
- 12.2. Угрозы безопасности информации
- 12.3. Объекты и элементы защиты информации в компьютерных системах обработки данных
- Глава 13. Методы и средства защиты информации
- 13.1. Механизмы, методы и средства защиты информации
- 13.2. Средства опознания и разграничения доступа к информации
- 13.3. Криптографические методы защиты информации
- 13.3.1. Основные понятия криптографии
- 13.3.2. Криптографические ключи и методы защитных преобразований
- 13.3.3. Криптографические системы
- 13.4. Электронная цифровая подпись
- Глава 14. Компьютерные вирусы и спам
- 14.1. Понятие вредоносных программ
- 14.2. Понятие компьютерного вируса
- 14.3. Классификация компьютерных вирусов
- 14.4. Программы борьбы с компьютерными вирусами
- 14.5. Меры и средства защиты от компьютерных вирусов
- 14.6. Защита от спама
- Глава 15. Защита информации в корпоративных системах
- 15.1. Цели и задачи корпоративной системы информационной безопасности
- 15.2. Политики информационной безопасности
- 15.2.1. Основные понятия политик безопасности
- 15.2.2. Основные причины создания политик безопасности
- 15.2.3. Разработка политик безопасности
- 15.2.4. Пример постановки задачи разработки политики информационной безопасности предприятия
- 15.2.5. Особенности разработки политик безопасности в России
- 15.3. Аудит безопасности корпоративных систем Интенет/Интранет
- 15.3.1. Понятие аудита безопасности
- 15.3.2. Аудит безопасности для корпоративных пользователей
- 15.3.3. Возможности аудита безопасности
- 15.3.4. Практические шаги аудита безопасности
- 15.4. Проектирование системы обеспечения информационной безопасности предприятия
- Список литературы
- Содержание