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

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

Данный практикум посвящён созданию макросов, как посредством записи, так и путём программирования на языке VBA.

Задание по записи

Вы являетесь сотрудником статистического отдела FIFA. В вашем распоряжении имеется книга Excel, включающая 32 листа, каждый из которых соответствует одной из футбольных сборных, участвующих в Кубке мира. На всех листах в ячейке A1 написано название сборной, в диапазоне A2:A24 написаны все 23 футболиста из заявки, в диапазоне B1:H1 перечислены 7 возможных матчей, а в диапазоне I2:I24 располагаются формулы, подсчитывающие сумму чисел из диапазонов Bn:Hn, где n принимает целые значения от 2 до 24. В диапазон ячеек B2:H24 заносятся данные о мячах, забитых тем или иным игроком, а в диапазоне I2:I24 выводится сумма всех голов каждого игрока за весь чемпионат.

От вас требуется, создать макрос Excel, с помощью которого ваши коллеги могли бы оформить имя сборной полужирным курсивным шрифтом, имена игроков, полужирным шрифтом, а заголовки матчей в диапазоне B1:H1 курсивным шрифтом, не задумываясь над форматированием каждой таблицы.

Методические рекомендации

Вам следует воспользоваться функцией записи макроса, вызываемой по команде меню "Сервис", подменю "Макрос", пункт "Начать запись"/"Остановить запись".

Алгоритм выполнения

  1. В меню "Сервис", подменю "Макрос" нажимаем на пункт "Начать запись" и в диалоге создания макроса нажимаем кнопку "ОК".
  2. В ячейке A1 нажимаем две команды: CTRL+I (курсивное написание) и CTRL+B (полужирное написание).
  3. Жмём F5 и через открытый диалог "Переход" выделяем диапазон A2:A24, после чего жмём CTRL+B.
  4. Снова в диалоге "Переход" выделяем диапазон B1:H1 и жмём CTRL+I.
  5. В меню "Сервис", подменю "Макрос" выбираем пункт "Остановить запись".

Всё, макрос записан и готов к применению на оставшихся таблицах.

Задание по программированию

В процессе выполнения неких специфических действий в Excel, вам часто приходится одновременно выделять несколько несоприкасающихся диапазонов ячеек. Каждый раз это одинаковые диапазоны: A1:E5, H1:k4 и N1:P3. В связи с невозможностью использования мыши для достаточно быстрого выполнения этой операции, вы вынуждены осуществлять это посредством режима выделения с клавиатуры (F8).

От вас требуется, запрограммировать на языке VBA макрос, который бы при его выполнении, выделял эти три диапазона ячеек и подавал в конце сигнал об успешном завершении операции.

Методические рекомендации

В VBA для Excel для выделения конкретной ячейки или диапазона ячеек следует воспользоваться конструкцией Range("аргумент").Select. В качестве аргумента задаются адреса ячеек или их диапазонов в стандартном виде, а несколько аргументов разделяются между собой запятой. Для подачи сигнала о завершении операции можно воспользоваться функцией Beep, которая проигрывает стандартный краткий звук Windows.

Алгоритм выполнения

  1. Нажимаем команду Alt+F11 и в открывшемся окне Редактора Visual Basic выполняем команду меню "Insert", пункт "Module".
  2. В окне приступаем к созданию новой подпрограммы, набирая строку
    Sub AutoSelecter
    и подтверждая операцию нажатием на Enter.
  3. Между двумя появившимися строками
    Sub AutoSelecter()
    End Sub
    программируем операцию выделения нужных диапазонов, вводя строку
    Range(A1:E5,H1:k4,N1:P3").Select
  4. Вызываем функцию Beep, чтобы озвучить завершение выполнения макроса, вводя строку
    Beep
  5. Нажимаем F5 для компиляции программы и закрываем Редактор VB по команде Alt+Q.

Таким образом, код макроса выглядит следующим образом:
'начинаем подпрограмму
Sub AutoSelecter()
'Выделяем нужные диапазоны
Range("A1:E5,H1:K4,N1:P3").Select
'подаём сигнал о завершении операции
Beep
'завершаем подпрограмму
End Sub

(использование комментариев не обязательно).

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



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