Microsoft Excel

трюкиприёмырешения

VBA и макросы
21.11.2013 19442

Автоматизация работы в документах Microsoft Excel

Для автоматизации работы приложений часто используются макросы. Любой макрос — это последовательность действий, записанная под определенным именем. Если при работе с Microsoft Excel возникает необходимость несколько раз выполнить одну и ту же последовательность операций (например, сложное форматирование текущей ячейки или добавление новой строки с заполнением некоторых ее ячеек формулами), то можно записать эти действия, а затем воспроизводить их столько раз, сколько потребуется.

Записанный макрос можно вызывать для выполнения с помощью специального диалогового окна или при помощи комбинации клавиш. Кроме того, макрос можно назначить кнопке на панели быстрого доступа. В общем случае, для того чтобы записать макрос, не нужно быть программистом — достаточно просто знать, как выполнить команды, приводящие к нужному результату.

Вкладка Разработчик, позволяющая записывать макросы, по умолчанию скрыта. Для того чтобы ее показать, необходимо выбрать Office → Параметры Excel → Основные и использовать опцию Показывать вкладку «Разработчик» на ленте. После установки этого флажка на ленте появится вкладка Разработчик.

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

Для того чтобы записать макрос, необходимо:

  1. Детально представить ту последовательность действий, которую нужно выполнять (во избежание возможных ошибок, лишних или неправильных действий).
  2. Выбрать элемент, к которому будут применяться действия, записываемые в макрос (установить курсор в пределах ячейки и пр.).
  3. Вызвать диалоговое окно Запись макроса одним из двух способов:
    • нажать кнопку Запись макроса на панели Код вкладки Разработчик;
    • нажать кнопку Запись макроса в левой части строки состояния Excel.
  4. Ввести в поле Имя макроса название создаваемого макроса. При этом первым символом имени макроса должна быть буква. Остальные символы могут быть как буквами, так и цифрами или знаком подчеркивания. В имени не допускаются пробелы; в качестве разделителей слов рекомендуется использовать знаки подчеркивания.
  5. В выпадающем списке Сохранить в указать, где будет сохранен данный макрос. Возможные варианты:
    • Личная книга макросов — макрос сохраняется в специальный файл, который будет доступен для всех документов сразу после загрузки Excel;
    • Новая книга — будет создана новая книга, и макрос будет сохранен в ней. Этот макрос будет доступен только в том случае, если содержащая его книга будет открыта;
    • Эта книга — макрос будет сохранен в текущей книге. Обычно такие макросы необходимы, когда их использование ограничено мелкой автоматизацией в текущей книге. Тем не менее, макрос будет доступен из других документов, если они будут открыты параллельно.
  6. Если необходимо, чтобы макрос вызывался комбинацией клавиш, ввести букву или цифру в поле Сочетание клавиш.
  7. Если вводится буква, то важен как регистр, так и раскладка. Например, если вводится буква д (малая русская), то комбинация клавиш для этого макроса будет Ctrl+д, но не Ctrl+I (малая английская L, которая находится на той же клавише).

  8. Нажать кнопку OK, затем кнопку Запись макроса на панели Код вкладки Разработчик, которая в строке состояния превратится в кнопку Остановить запись, останавливающую запись макроса.
  9. Выполнить последовательность действий, которые будут записаны в макрос.
  10. Все значимые действия пользователя (щелчки по кнопкам, редактирование данных, перемещение по листу и т.д.) будут записаны. Сделать паузу в записи невозможно.

  11. Завершить запись макроса нажатием кнопки Остановить запись. По окончании записи макроса он появляется в списке макросов иод своим именем.

Выполнение макросов

Для выполнения макроса можно воспользоваться диалоговым окном Макрос. Чтобы отобразить это окно, можно нажать комбинацию клавиш Alt+F8 либо воспользоваться кнопкой Макросы на панели Код. Далее в этом окне необходимо выбрать требуемый макрос и нажать кнопку Выполнить. Второй возможностью выполнить макрос является комбинация клавиш, выбранная на этапе создания макроса. Кроме того, в Excel предусмотрена возможность вызова макроса при помощи кнопки па панели быстрого доступа.

Создание кнопки макроса на панели быстрого доступа

Для создания кнопки на панели быстрого доступа нужно:

  1. Вызвать диалоговое окно Параметры Excel и перейти на вкладку Настройка.
  2. В выпадающем списке Выбрать команды из выбрать пункт Макросы.
  3. Выбрать нужный макрос из списка макросов и нажать кнопку Добавить — он скопируется в правое окно и станет доступен в виде кнопки на панели быстрого доступа.
  4. Чтобы для созданной кнопки изменить рисунок и отображаемое имя, следует воспользоваться командой Изменить.
  5. Нажать кнопку ОК в диалоговом окне Параметры Excel.

В результате кнопка добавится на панель быстрого доступа. Отображаемое имя будет появляться в виде всплывающей подсказки при наведении на кнопку указателя мыши.

Удаление макроса

Для удаления макроса следует нажать кнопку Макросы на панели Код или комбинацию клавиш Alt+F8 — появится диалоговое окно Макрос, содержащее список макросов, доступных в открытых книгах. В данном окне необходимо выбрать удаляемый макрос и нажать кнопку Удалить.

При удалении макроса его кнопка в панели быстрого доступа не удаляется автоматически, поэтому ее нужно удалить вручную на вкладке Настройки диалогового окна Параметры Excel.

Редактирование макроса

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

Для входа в режим редактирования макроса нужно:

  1. В диалоговом окне Макрос выбрать подлежащий редактированию макрос.
  2. Нажать кнопку Изменить — откроется окно Microsoft Visual Basic.

Для примера создадим в текущей книге Excel простейший макрос, который должен применяться к выделенной ячейке и изменять ее форматирование (цвет фона — красный, цвет шрифта — светло-коричневый, Фон 2). Чтобы создать этот макрос, необходимо:

  1. Выделить любую ячейку на листе и ввести в нее какой-нибудь текст (чтобы можно было посмотреть на результат работы).
  2. Включить запись макроса с помощью кнопки Запись макроса в строке состояния.
  3. В диалоговом окне Запись макроса все параметры оставить выбранными по умолчанию и нажать кнопку ОК.
  4. На вкладке Главная (панель Шрифт) выбрать нужные параметры цвета.
  5. Остановить запись макроса при помощи кнопки Остановить запись в строке состояния.

Теперь для того чтобы просмотреть код созданного макроса, необходимо вызвать редактор Visual Basic способом, описанным выше, — откроется окно кода для созданного макроса, в котором будет записан следующий код:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
// Макрос форматирования ячейки Макрос1
Sub Макрос1()
'Макрос! Макрос
With Selection.Interior
	.Pattern = xlSolid
	.PatternColorlndex = xlAutomatic
	.Color = 255
	.TintAndShade = 0
	.PatternTintAndShade = 0
End With
With Selection.Font
	.ThemeColor = xlThemeColorDark2
	.TintAndShade = 0
End With
End Sub

Чтобы при последовательном обращении к нескольким свойствам одного объекта каждый раз не указывать длинную цепочку типа Selection.Interior.Pattern = xlSolid, используется специальная конструкция языка VBA: With…End With — внутри нес имя объекта можно опустить, указывая лишь точку перед именем свойства.

Для тех, кто знает английский язык, назначение и принцип работы команд в данном коде достаточно очевидны: для объекта Selection.Interior (т.е. для внутренней области выделенной ячейки) выполняется задание значений различным параметрам фона. Основные параметры — Pattern (способ заливки, в данном случае задан xlSolid, т.е. сплошным) и Color (Цвет). Аналогичным образом происходит изменение цвета шрифта (начиная со строки With Selection.Font).

Такой легкий доступ к тексту макроса дает возможность корректировать неверно введенные команды, объединять несколько макросов, написанных разными людьми, изменять когда-то написанные макросы, задавая им новые параметры для работы, чтобы не переписывать их заново.

Цели полностью удалить код макроса в редакторе Visual Basic, то макрос также будет полностью удален (это аналогично действию кнопки Удалить диалогового окна Макрос).

Для переименования макроса достаточно войти в режим его редактирования и в тексте программы исправить заголовок в строке Sub Макрос1() — новое имя автоматически заменит старое в списках макросов. Заметим, что не все замены происходят автоматически. Если с макросом были связаны графические объекты или кнопки, то необходимо сделать для них переназначения.

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

Top