Невизуальная работа в среде Microsoft Excel: Макросы и макпрограммирование

Учебный экспресс-курс работы в среде Microsoft Excel без помощи зрения и без задействования компьютерной мыши, написанный с учётом использования программ экранного доступа JAWS for Windows и NVDA.
Дата публикации:27.06.2010
Поделиться в Twitter Поделиться в F******k Поделиться в VKontakte Поделиться в Telegram Поделиться в Mastodon

Макпрограммирование - это процесс создания макроса. Макрос - это определённый набор команд, которые можно применить, нажав всего лишь несколько клавиш. Макросы можно использовать для автоматизации выполнения повторяющихся действий при редактировании документа, оптимизации выполнения трудоёмких задач и для создания решений, например для автоматизации создания постоянно используемых документов. Макрос является вполне полноценной компьютерной программой, однако, чтобы использовать в работе макросы, не нужно обладать квалификацией профессионального программиста. Для создания макросов, используемых в приложениях Microsoft Office, применяется язык Microsoft Visual Basic for Applications, обозначаемый как язык VBA. С его помощью можно программировать довольно сложные макросы, включающие пользовательские надстройки, шаблоны, диалоговые окна или применять их для хранения многократно использующихся сведений, но создать элементарную макпрограмму можно даже без знаний VBA.

Работая с макросами, всегда стоит учитывать аспект информационной безопасности. Макрос, созданный с вредительскими целями, может содержать программный код, который может привести к повреждению или уничтожению документа и даже всей системы. Чтобы защититься от вредоносных макпрограмм, не следует запускать макросы из источников, не заслуживающих доверия. В меню "Сервис", подменю "Макрос", пункт "Безопасность", на вкладке "Уровень безопасности" имеется группа радиокнопок, посредством которых настраивается уровень макбезопасности Microsoft Excel. Здесь не стоит устанавливать низкий уровень безопасности, так как при этом, Excel будет запускать без предупреждения все макросы, содержащиеся в открываемом документе. Если работа пользователя вообще не предполагает тесный контакт с данной функцией, то можно установить один из высоких уровней безопасности. Если же предстоит тесный контакт с макпрограммами, то оптимальным вариантом будет средний уровень безопасности, при котором пользователю всегда будет выводиться диалог с вопросом о запуске содержащихся в документе макросов.

Если макрос уже запустился и приступил к выполнению операций, то для его остановки следует нажать клавишу Escape, а затем в открывшемся диалоговом окне Microsoft Visual Basic следует нажать кнопку "End". Если же требуется предотвратить автоматическое выполнение макроса при запуске Microsoft Excel, то во время запуска следует удерживать нажатой клавишу Shift.

Создавать макросы можно двумя способами: записью и программированием. Первый способ доступен любому пользователю, так как вообще не требует каких-либо знаний VBA или программирования вообще, второй же способ предполагает знание языка Visual Basic for Applications.

Запись макросов

Создание макросов посредством записи является элементарным действием, поэтому этой возможностью Excel может воспользоваться любой. Подобный метод написания макросов подходит для тех случаев, когда требуется оптимизировать какой-то многократно повторяющийся процесс, например, однотипное форматирование большого числа одинаковых таблиц.

Для этого следует в меню "Сервис", подменю "Макрос" выбрать пункт "Начать запись". При этом откроется диалоговое окно "Запись макроса". Здесь можно присвоить создаваемому макросу оригинальное название (имя макроса не должно включать пробелы и знаки препинания, не должно начинаться с цифры, а для разделения нескольких слов можно использовать либо написание их первых букв в верхнем регистре, либо знак "_" (подчёркивание)), назначить сочетание клавиш, по которому будет вызываться данный макрос (данная операция не обязательна), указать место его сохранения и отредактировать описание. После нажатия на кнопку "ОК" фокус вернётся в рабочий лист Excel.

Здесь следует выполнить последовательность действий, которую следует запомнить. Например, Увеличить шрифт заголовков таблиц и сделать его полужирным, название строк написать курсивом и прочее. После завершения выполнения всех действий, следует в меню "Сервис", подменю "Макрос" выбрать пункт "Остановить запись". После этого макрос будет сохранён и готов к дальнейшему использованию.

Можно перейти на следующий лист книги, где имеется аналогичная таблица, и в диалоге вызова макроса, открываемого по команде Alt+F8 или через меню "Сервис", подменю "Макрос", пункт "Макросы", выбрать в списке только что созданную программу и нажать на кнопку "Выполнить". После этого все действия, выполненные при записи макроса с первой таблицей, будут автоматически повторены с текущей таблицей. Таким образом, за несколько нажатий клавиш можно повторить довольно большой объём работы.

Программирование макросов

Полноценное программирование макросов требует от пользователя знаний языка VBA, однако предоставляет несравнимо большие возможности по созданию пользовательских макпрограмм по сравнению с обычной записью действий. Перед данным материалом не ставится задача обучения читателя языку Visual Basic for Applications, поэтому здесь будет дан лишь краткий обзор функции программирования с целью формирования общего представления о принципах работы.

Для создания макроса путём написания программного кода следует запустить Редактор Visual Basic. Это делается либо через меню "Сервис", подменю "Макрос", пункт "Редактор Visual Basic", либо посредством нажатия команды Alt+F11. После этого откроется главное окно редактора с заголовком "Microsoft Visual Basic - имя_книги". Следует отметить, что данный редактор не локализован даже в официальных русификациях пакета Microsoft иOffice, поэтому всё его меню является англоязычным. Дальнейшая работа по добавлению модулей, написанию программного кода макросов и прочего осуществляется именно в этом окне.

Если в программном коде встречаются пустые строки, то VBA их игнорирует, также игнорируется содержимое строк, начинающихся со знака "'" (апостроф). Поэтому строки с комментариями к коду следует начинать именно с этого символа. Визуально эти строки также выделяются зелёным цветом.

Практический пример:

Требуется написать классическую программу, с которой традиционно начинается изучение всех языков программирования, - "Hello, World!" или "Привет, мир!". Для этого в рабочей книге Excel нажимаем Alt+F11. В открывшемся окне редактора VB выполняем команду меню "Insert", пункт "Module" для добавления нового модуля. Далее вводим строку состоящую из слова "Sub" и через пробел названия создаваемого макроса, например, "MyFirstMacro", то есть
Sub MyFirstMacro
После ввода этой строки следует нажать Enter. При этом в окне редактора появится две строки с текстом, отмечающие границы создаваемого макроса. Строка
Sub MyFirstMacro()
обозначает его начало, а строка
End Sub
обозначает его конец. Между ними располагается две пустые строки, куда следует вписывать программный код. Для решения поставленной задачи в тело макроса следует вписать следующую строку:
MsgBox "Привет, мир!"
Для проверки работоспособности введённого кода следует нажать на кнопку F5. При этом произойдёт либо отработка введённой программы, либо выведется информация об ошибке. В данном случае, должно открыться информационное окно Excel с текстом "Привет, мир!" и кнопкой "ОК" для его закрытия. После завершения написания макроса следует закрыть Редактор Visual Basic по команде Alt+Q или через меню "File", пункт "Close and Return to Microsoft Excel". Теперь данный макрос как обычно можно выполнить через меню, открываемое по Alt+F8.

Пользователь всегда имеет возможность просмотреть VBA-код любого макроса, как запрограммированного вручную, так и созданного посредством записи. Для этого следует в меню выбора макроса по Alt+F8 выбрать интересующую макпрограмму и нажать на кнопку "Изменить". При этом макрос откроется в окне Редактора Visual Basic.



Распространение материалов сайта означает, что распространитель принял условия лицензионного соглашения.
Идея и реализация: © Владимир Довыденков и Анатолий Камынин,  2004-2024