Язык программирования макросов в excel

Язык программирования макросов в excel

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

Написание макросов в Excel

Код макроса Excel написанный на языке Visual Basic for Application (VBA), а его выполняет инструмент приложения, к которому он присоединен. Большинство этих инструментов не доступно на уровне окна программы Excel. Как написать макрос.

Теперь продемонстрируем на примере информацию о том, как писать, редактировать и выполнять код макроса.

Чтобы написать макрос:

  1. Откройте рабочую книгу Excel, в которой необходимо использовать макрос: «РАЗРАБОТЧИК»-«Код»-«Visual Basic». Или нажмите комбинацию горячих клавиш ALT+F11.
  2. Перед началом работы в редакторе следует сделать простую настройку. Выберите инструмент в редакторе Visual Basic: «Tools»-«Options». И на вкладке «Editor» активируйте опцию «Require Variable Declaration». Это позволит реализовать автоматическое заполнение инструкций Options Explicit в начале каждого ново созданного кода. А в поле ввода «Tab Width:» укажите значение 2 вместо 4-х. Это позволит уменьшить ширину кода. Данная настройка редактора распространяется на все листы, но в границах одной рабочей книги.
  3. Выберите инструмент: «Insert»-«Module» чтобы создать новый стандартный модуль для макросов. В появившемся окне модуля под текстом Option Explicit введите следующий код макроса:

Sub MyMakros()
Dim polzovatel As String
Dim data_segodnya As Date
polzovatel = Application.UserName
data_segodnya = Now
MsgBox "Макрос запустил пользователь: " & polzovatel & vbNewLine & data_segodnya
End Sub

Примечание. Если в главном меню отсутствует закладка «РАЗРАБОТЧИК», тогда ее необходимо активировать в настройках: «ФАЙЛ»-«Параметры»-«Настроить ленту». В правом списке «Основные вкладки:» активируйте галочкой опцию «Разработчик» и нажмите на кнопку ОК.

Возможности макросов в Excel

Макросы позволяют автоматизировать процессы работы с документами и не только… Они могут практически одновременно выполнить тысячи инструментов за одну операцию (даже по одному клику мышкой). Таким образом расширяются возможности работы с программой.

С помощью макросов пользователь может сам создать свой инструмент, которого ему недостает в арсенале программы Excel. Например, когда нужно автоматически выделить каждую вторую строку одним кликом. Или нужно одновременно создать сразу определенное количество копий определенного рабочего листа. Список потребностей пользователей в автоматизации процессов работы можно продолжать до бесконечности.

Если бы не было возможности создавать макросы во всех программах, входящих в пакет MS Office. То множество операций в процессе рутинной работы пользователям приходилось бы выполнять вручную (выделять через одну строку кликая по каждому второму заголовку мышкой или копировать вставлять по одному листу). Ручная работа в лучшем случаи приводить к потере огромного количества времени, а в худшем – ведет к ошибкам или даже потере ценных данных.

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

Excel предоставляет большой и изобильный арсенал инструментов для хранения и обработки огромного количества информации с данными. Хотя для самой универсальной аналитической программы Excel – хранение данных само по себе менее интересно, чем возможность их обрабатывать, структурировать и анализировать с презентацией в отчетах. Для этих целей служит сильнейший аналитических инструмент по обработке данных такой как «Сводные таблицы». Но и его можно еще более усовершенствовать с помощью макросов. И тогда возможности сводных таблиц не знают границ.

Независимо от используемых вами операционной системы и программных приложений вы часто выполняете одни и те же последовательности команд для многих рутинных задач. Вместо повторения последовательности команд каждый раз, когда вам необходимо выполнить какую-либо задачу, вы можете создать макрос (macro), который вместо вас будет выполнять эту последовательность. Макросы позволяют вводить одиночную команду, выполняющую ту же задачу, для реализации которой вам было бы необходимо вводить несколько команд вручную.

Макросы, кроме удобства, имеют и другие преимущества. Поскольку компьютеры больше приспособлены для выполнения повторяющихся задач, чем люди, запись макрорекордером неоднократно выполняемых команд повышает точность и скорость работы. Другим преимуществом использования макросов является то, что при их выполнении обычно нет необходимости в присутствии человека-оператора.

Макрорекордер (или просто «рекордер») записывает все действия пользователя, включая ошибки и неправильные запуски. Когда программа воспроизводит макрос, она выполняет каждую записанную рекордером команду точно в такой последовательности, в которой вы их выполняли во время записи.

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

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

С помощью макросов можно создавать пользовательские меню, диалоговые окна и панели инструментов, которые могут до неузнаваемости изменить интерфейс всем известных продуктов Word, Excel, Access, PowerPoint. Уместно здесь отметить также и возможность создания разнообразной системы проверки данных, вводимых пользователем в диалоговых окнах. Когда вы научитесь писать программы на языке VBA, вы, скорее всего, уже никогда не станете начинать создание макроса с использования рекордера.

Лабораторная работа № 1. Запись новых макросов в Excel. Выполнение

Цель занятия: Уметь задавать стартовые условия для макроса, запускать макроредактор и присваивать имя макросу, выполнять действия, которые необходимо записать для использования позже, останавливать макроредактор, запускать на выполнения макросы.

Материалы к занятию: MS Excel 2003.

Задание 1. Создайте макрос в Excel, который форматирует текст в текущей ячейке шрифтом Arial, полужирным, 12 размером.

1. Задайте стартовые условия.

^Запустите Excel 2003 (Пуск/Все программы ► /Microsoft Office ► /Microsoft Office Excel 2003), если он еще не запущен;

откройте какую-либо рабочую книгу;

выберите какой-либо рабочий лист;

выделите любую ячейку в рабочем листе.

2. Выберете место и имя хранения макроса.

• выберете в меню Сервис/Макрос/Начать запись… (Tools/Macro/Record New Macro…);

* в раскрывшимся диалоговом окне Запись макроса (Record Macro) (рис. 1), в текстовом окне Имя макроса (Macro Name) введите FormatArialBold12 в качестве имени макроса;

ь оставьте без изменений текст, который Excel вставила в поле Описание (Description), но добавьте следующее: Форматирует текст диапазона: Arial, Bold, 12; этот дополнительный комментарий поможет вам (и другим) определить назначение данного макроса;

Читайте также:  Как объединить окна в фотошопе

ь в списке Сохранить в (Store macro in) для выбора места, в котором будет сохранен записанный макрос выберите Личная книга макросов;

ь если вы уверены в том, что будете часто использовать макрос, который

собираетесь записывать, можете назначить для его запуска горячую клавишу; если — да, введите горячую клавишу в текстовое окно Сочетание клавиш (Shortcut Key) окна Запись макроса;

* щелкните на кнопке ОК для начала записи макроса; как только вы щелкните на кнопке ОК в диалоговом окне Запись макроса, Excel запустит

макрорекордер, отобразит панель ^ Остановить запись (Stop Recorder) и начнет запись ваших действий. Макрорекордер сохранит каждое ваше действие в новом макросе.

Замечание 1. Доступными вариантами при сохранении макросов являются Личная книга макросов (Personal Macro Workbook), Новая книга (New Workbook) и Эта книга (This Workbook). Когда вы выбираете в качестве места для хранения макроса Личная книга макросов, Excel сохраняет макрос в файле специальной книги с именем Personal.xls в папке, в которую установлена Excel. Excel автоматически открывает эту книгу каждый раз в начале работы. Поскольку вам всегда доступны макросы из всех открытых книг, макрос, сохраненный в книге Personal.xls, также будет доступен вам всегда. Если книга Personal.xls не существует, Excel создаст ее. Выбор Эта книга приведет к тому, что Excel сохранит новый макрос в текущей активной рабочей книге. Выбор Новая книга приведет к созданию в Excel новой рабочей книги, в которой будет сохранен этот макрос, — рабочая книга, которая была активной при запуске вами макрорекордера, остается активной рабочей книгой; любые действия, которые вы записываете, выполняются в этой книге, а не в новой рабочей книге, созданной для сохранения макроса.

Замечание 2. Не всегда при запуске макрорекордера вы можете увидеть на экране панель Остановить запись. Поскольку это — обычная панель, ее можно отображать или не отображать. Этим, как и другими панелями, управляет команда Панели инструментов (Toolbars) меню Вид (View). В любом случае (при наличии на экране панели Остановить запись или ее отсутствии) вы можете остановить макрорекордер, выбрав Сервис/Макрос/Остановить запись.

3. Запишите действия и остановите макрорекордер.

выберите команду Формат/Ячейки… (Format/Cells…) для отображения диалогового окна Формат ячеек (Format Cells);

щелкните на ярлычке Шрифт (Font) для отображения опций шрифта (рис. 2);

выберите Arial в списке Шрифт (Font); выполните этот шаг, даже если шрифт Arial уже выбран;

выберите Полужирный (Bold) в списке Начертание (Font Style);

щелкните на кнопке ОК, чтобы закрыть диалоговое окно Формат ячеек и изменить выделенную ячейку в рабочем листе;

щелкните на кнопке Остановить запись (Stop Macro) на панели Остановить запись (Stop Recorder) или выберите команду Сервис/Макрос/Остановить запись (Tools/Macro/Stop Recording).

Замечание 3. По умолчанию панель l?f Остановить запись в Excel содержит две командные кнопки. Левая кнопка — это кнопка Остановить запись (Stop); щелкните на этой кнопке для остановки макрорекордера. Правая кнопка -это кнопка Относительная ссылка (Relative Reference). По умолчанию Excel записывает абсолютные ссылки на ячейки в ваши макросы. Кнопка Относительная ссылка является кнопкой-переключателем (toggle). Когда запись с относительными ссылками отключена, кнопка Относительная ссылка выглядит плоской; при помещении курсора мыши на кнопку вид кнопки изменяется и она выглядит отжатой. Когда запись с относительной ссылкой включена, кнопка Относительная ссылка на панели Остановить запись нажата (находится в «утопленном» положении). Щелкая на кнопке Относительная ссылка, можно включать и выключать запись с относительными ссылками во время записи по вашему желанию.

Задание 2. Выполните макрос FormatArialBoIdl2.

^выберите ячейку в рабочем листе (предпочтительнее ячейку, содержащую некоторый текст, чтобы вы могли видеть изменения);

^выберите команду Сервис/Макрос/Макросы… для отображения диалогового окна Макрос;

• выберите макрос PERSONAL.XLS!FormatAriaIBoIdl2 в списке Имя макроса и щелкните на кнопке Выполнить для запуска макроса FormatArialBoldl2. Текст в любой ячейке, которая была выделена до запуска вами этого макроса, будет теперь иметь формат полужирного шрифта Arial 12-го размера.

Создайте макрос в Excel, который вычисляет сумму ячеек A1, A2 и выводит результат в ячейку A3 шрифтом Times New Roman, курсивом, 12 размером.

Создайте макрос в Excel, который выводит на желтом фоне синими буквами в текущую ячейку имя, а справа от нее фамилию шрифтом Arial, полужирным, 12 размером.

Создайте макрос в Excel, который выводит красными буквами в ячейку A3 слово Частное:”, справа от нее выводит частное ячеек A1 и A2 шрифтом

Times New Roman, курсивом, 12 размера.

Макросы Visual Basic for Applications сохраняются как часть файлов, в которых Excel (а также Word и Access) обычно содержит свои данные, – макросы сохраняются в файлах рабочих книг в Excel. Макросы сохраняются в специальной части файла данных, называемой Modules (модули). Модуль VBA содержит исходный код (source code) макроса – текстовое представление инструкций. Каждый файл рабочей книги Excel может не содержать модулей или содержать один или несколько модулей. Модули, сохраняемые в одной рабочей книге Excel, имеют общее название Project (проект).

При записи макроса в Excel вы можете определять только рабочую книгу, в которой Excel сохраняет записанный макрос, – текущую рабочую книгу, новую рабочую книгу или рабочую книгу Personal.xls. Excel выбирает модуль, в котором сохраняется записанный макрос, и при необходимости создает этот модуль. Когда Excel создает модуль, в котором сохраняется записанный макрос, модулю присваивается имя ModuleN, где N – это количество модулей, созданных для определенной рабочей книги во время текущего сеанса работы. Например, в первый раз, когда вы сохраняете записанный макрос в Personal.xls (личной книге макросов), Excel создает модуль с именем Module1. Если вы продолжаете записывать макросы в том же сеансе работы и сохранять их в Personal.xls, Excel продолжает сохранять записанные макросы в том же модуле Module1 до тех пор, пока вы не выберете другую рабочую книгу. Если позже в том же сеансе работы вы опять захотите сохранить записанные макросы в Personal.xls, Excel добавляет другой модуль с именем Module2 в эту книгу.

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

Для просмотра модулей, сохраненных в определенной рабочей книге (и исходного кода макроса, который они содержат), вам необходимо использовать компонент Visual Basic Editor (Редактор Visual Basic). Этот компонент предоставляет инструментальные средства, которые используются для создания новых модулей, просмотра содержимого существующих модулей, создания и редактирования исходного кода макроса, создания пользовательских диалоговых окон и выполнения других задач, относящихся к написанию и обслуживанию программ на VBA. Редактор Visual Basic (Редактор VB) содержит одни и те же возможности в Excel, Word и Access.

Задание 3. Запустите Редактор VB.

ь выберите Сервис/Макрос/Редактор Visual Basic (Tools/Macro/Visual Basic Editor) или нажмите сочетание клавиш Alt+F11;

Читайте также:  Клей для печатных плат

ь выберите в меню View/Code или нажмите клавишу F7.

Excel запустит Редактор VB (рис. 3).

В окне Редактора VB имеются три дочерних окна, каждое из которых отображает важную информацию о VBA-проекте. Project (Проект) — это группа модулей и других объектов, сохраняемых в определенной рабочей книге или шаблоне рабочей книги. Каждое из окон Редактора VB отображается по умолчанию в прикрепленных (docked) положениях (рис. 3).

Если необходимо, вы можете переместить любое из дочерних окон Редактора VB в любое место на экране, перетаскивая строку заголовка (title bar) этого окна таким же образом, каким бы вы перемещали любое окно на рабочем столе Windows. Перетаскивание одного из дочерних окон из его прикрепленного положения приводит к тому, что оно становится плавающим окном. Плавающие (floating) окна всегда остаются видимыми поверх других окон. Вы можете также изменять размер любого из дочерних окон Редактора VB, расширяя или уменьшая рамку окна для увеличения или уменьшения его размера, что подобно изменению размера любого окна на рабочем столе Windows.

Project Explorer (Окно проекта) содержит дерево-диаграмму открытых в данный момент файлов (рабочих книг) и объектов, содержащихся в этих файлах (объекты host-приложения, модули, ссылки, формы и так далее). Project Explorer можно использовать для перехода к различным модулям и другим объектам в проекте VB при помощи кнопок (панели инструментов этого окна) = View Code (Программа), ^ View Object (Объект) и Ш. Toggle Folders (Папки).

Properties Window (Окно свойств) содержит все свойства объекта текущего выбора. Вкладка Alphabetic (по алфавиту) этого окна предоставляет список

свойств выделенного объекта, составленный из имен свойств в алфавитном порядке. Вкладка Categorized (по категориям) отображает свойства объекта, отсортированные по категориям.

Code Window — это окно, в котором вы можете просматривать, редактировать или создавать исходный код VBA. В режиме F Full Module View весь исходный код макроса в модуле отображается сразу в прокручивающемся текстовом окне, а макрос отделяется от другого макроса серой линией. Редактор VB позволяет также просматривать содержимое модуля в режиме 1= Procedure View (представление процедуры). Чтобы выбрать режим просмотра, щелкайте кнопки в нижнем левом углу Code Window (рис. 3).

Когда Code Window находится в режиме Procedure View, видимым является исходный код только одного макроса. Используйте раскрывающийся список Procedure (процедура) для просмотра другого макроса. В режиме Full Module View вы можете также использовать раскрывающийся список Procedure для быстрого перехода к отдельному макросу.

Используйте список Object List (объект) для выбора объекта, процедуры которого хотите просмотреть или редактировать. В случае стандартных модулей, таких как модули, в которых сохраняются записанные вами макросы, единственным выбором в списке Object List является General (общая область).

В Редакторе VB меню File (Файл) предоставляет команды, необходимые для сохранения изменений в проекте VBA и вывода на экран исходного кода вашего макроса VBA. В табл. 1 приведены команды меню File, их горячие клавиши и назначение каждой команды.

Таблица 1 — Команды меню File

Введение

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

Макрос — это запрограммированная последовательность действий (программа, процедура), записанная на языке программирования Visual Basic for Applications (VBA). Мы можем запускать макрос сколько угодно раз, заставляя Excel выполнять последовательность любых нужных нам действий, которые нам не хочется выполнять вручную.

В принципе, существует великое множество языков программирования (Pascal, Fortran, C++, C#, Java, ASP, PHP. ), но для всех программ пакета Microsoft Office стандартом является именно встроенный язык VBA. Команды этого языка понимает любое офисное приложение, будь то Excel, Word, Outlook или Access.

Способ 1. Создание макросов в редакторе Visual Basic

Для ввода команд и формирования программы, т.е. создания макроса необходимо открыть специальное окно — редактор программ на VBA, встроенный в Microsoft Excel.

  • В старых версиях (Excel 2003 и старше) для этого идем в меню Сервис — Макрос — Редактор Visual Basic(Toos — Macro — Visual Basic Editor).
  • В новых версиях (Excel 2007 и новее) для этого нужно сначала отобразить вкладку Разработчик (Developer) . Выбираем Файл — Параметры — Настройка ленты (File — Options — Customize Ribbon) и включаем в правой части окна флажок Разработчик (Developer) . Теперь на появившейся вкладке нам будут доступны основные инструменты для работы с макросами, в том числе и нужная нам кнопка Редактор Visual Basic(Visual Basic Editor)

    :

К сожалению, интерфейс редактора VBA и файлы справки не переводятся компанией Microsoft на русский язык, поэтому с английскими командами в меню и окнах придется смириться:

Макросы (т.е. наборы команд на языке VBA) хранятся в программных модулях. В любой книге Excel мы можем создать любое количество программных модулей и разместить там наши макросы. Один модуль может содержать любое количество макросов. Доступ ко всем модулям осуществляется с помощью окна Project Explorer в левом верхнем углу редактора (если его не видно, нажмите CTRL+R). Программные модули бывают нескольких типов для разных ситуаций:

    Обычные модули — используются в большинстве случаев, когда речь идет о макросах. Для создания такого модуля выберите в меню Insert — Module. В появившееся окно нового пустого модуля можно вводить команды на VBA, набирая их с клавиатуры или копируя их из другого модуля, с этого сайта или еще откуда нибудь:

Модуль Эта книга — также виден в левом верхнем углу редактора Visual Basic в окне, которое называется Project Explorer. В этот модуль обычно записываются макросы, которые должны выполнятся при наступлении каких-либо событий в книге (открытие или сохранение книги, печать файла и т.п.):

Модуль листа — доступен через Project Explorer и через контекстное меню листа, т.е. правой кнопкой мыши по ярлычку листа — команда Исходный текст (View Source) . Сюда записывают макросы, которые должны выполняться при наступлении определенных событий на листе (изменение данных в ячейках, пересчет листа, копирование или удаление листа и т.д.)

Обычный макрос, введенный в стандартный модуль выглядит примерно так:

Давайте разберем приведенный выше в качестве примера макрос Zamena:

  • Любой макрос должен начинаться с оператора Sub, за которым идет имя макроса и список аргументов (входных значений) в скобках. Если аргументов нет, то скобки надо оставить пустыми.
  • Любой макрос должен заканчиваться оператором End Sub.
  • Все, что находится между Sub и End Sub — тело макроса, т.е. команды, которые будут выполняться при запуске макроса. В данном случае макрос выделяет ячейку заливает выделенных диапазон (Selection) желтым цветом (код = 6) и затем проходит в цикле по всем ячейкам, заменяя формулы на значения. В конце выводится окно сообщения (MsgBox).
Читайте также:  Ноутбук msi gp62 2qe

С ходу ясно, что вот так сразу, без предварительной подготовки и опыта в программировании вообще и на VBA в частности, сложновато будет сообразить какие именно команды и как надо вводить, чтобы макрос автоматически выполнял все действия, которые, например, Вы делаете для создания еженедельного отчета для руководства компании. Поэтому мы переходим ко второму способу создания макросов, а именно.

Способ 2. Запись макросов макрорекордером

Макрорекордер — это небольшая программа, встроенная в Excel, которая переводит любое действие пользователя на язык программирования VBA и записывает получившуюся команду в программный модуль. Если мы включим макрорекордер на запись, а затем начнем создавать свой еженедельный отчет, то макрорекордер начнет записывать команды вслед за каждым нашим действием и, в итоге, мы получим макрос создающий отчет как если бы он был написан программистом. Такой способ создания макросов не требует знаний пользователя о программировании и VBA и позволяет пользоваться макросами как неким аналогом видеозаписи: включил запись, выполнил операци, перемотал пленку и запустил выполнение тех же действий еще раз. Естественно у такого способа есть свои плюсы и минусы:

  • Макрорекордер записывает только те действия, которые выполняются в пределах окна Microsoft Excel. Как только вы закрываете Excel или переключаетесь в другую программу — запись останавливается.
  • Макрорекордер может записать только те действия, для которых есть команды меню или кнопки в Excel. Программист же может написать макрос, который делает то, что Excel никогда не умел (сортировку по цвету, например или что-то подобное).
  • Если во время записи макроса макрорекордером вы ошиблись — ошибка будет записана. Однако смело можете давить на кнопку отмены последнего действия (Undo) — во время записи макроса макрорекордером она не просто возрвращает Вас в предыдущее состояние, но и стирает последнюю записанную команду на VBA.

Чтобы включить запись необходимо:

  • в Excel 2003 и старше — выбрать в меню Сервис — Макрос — Начать запись(Tools — Macro — Record New Macro)
  • в Excel 2007 и новее — нажать кнопку Запись макроса (Record macro) на вкладке Разработчик (Developer)

Затем необходимо настроить параметры записываемого макроса в окне Запись макроса:

  • Имя макроса — подойдет любое имя на русском или английском языке. Имя должно начинаться с буквы и не содержать пробелов и знаков препинания.
  • Сочетание клавиш — будет потом использоваться для быстрого запуска макроса. Если забудете сочетание или вообще его не введете, то макрос можно будет запустить через меню Сервис — Макрос — Макросы — Выполнить(Tools — Macro — Macros — Run) или с помощью кнопки Макросы (Macros) на вкладке Разработчик (Developer) или нажав ALT+F8.
  • Сохранить в. — здесь задается место, куда будет сохранен текст макроса, т.е. набор команд на VBA из которых и состоит макрос.:
  • Эта книга — макрос сохраняется в модуль текущей книги и, как следствие, будет выполнятся только пока эта книга открыта в Excel
  • Новая книга — макрос сохраняется в шаблон, на основе которого создается любая новая пустая книга в Excel, т.е. макрос будет содержаться во всех новых книгах, создаваемых на данном компьютере начиная с текущего момента
  • Личная книга макросов — это специальная книга Excel с именем Personal.xls, которая используется как хранилище макросов. Все макросы из Personal.xls загружаются в память при старте Excel и могут быть запущены в любой момент и в любой книге.

После включения записи и выполнения действий, которые необходимо записать, запись можно остановить командой Остановить запись (Stop Recording) .

Запуск и редактирование макросов

Управление всеми доступными макросами производится в окне, которое можно открыть с помощью кнопки Макросы (Macros) на вкладке Разработчик (Developer) или — в старых версиях Excel — через меню Сервис — Макрос — Макросы (Tools — Macro — Macros) :

  • Любой выделенный в списке макрос можно запустить кнопкой Выполнить(Run) .
  • Кнопка Параметры(Options) позволяет посмотреть и отредактировать сочетание клавиш для быстрого запуска макроса.
  • Кнопка Изменить(Edit) открывает редактор Visual Basic (см. выше) и позволяет просмотреть и отредактировать текст макроса на VBA.

Создание кнопки для запуска макросов

Чтобы не запоминать сочетание клавиш для запуска макроса, лучше создать кнопку и назначить ей нужный макрос. Кнопка может быть нескольких типов:

Кнопка на панели инструментов в Excel 2003 и старше

Откройте меню Сервис — Настройка (Tools — Customize) и перейдите на вкладку Команды (Commands) . В категории Макросы легко найти веселый желтый "колобок" — Настраиваемую кнопку (Custom button) :

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

Кнопка на панели быстрого доступа в Excel 2007 и новее

Щелкните правой кнопкой мыши по панели быстрого доступа в левом верхнем углу окна Excel и выберите команду Настройка панели быстрого доступа (Customise Quick Access Toolbar) :

Затем в открывшемся окне выберите категорию Макросы и при помощи кнопки Добавить (Add) перенесите выбранный макрос в правую половину окна, т.е. на панель быстрого доступа:

Кнопка на листе

Этот способ подходит для любой версии Excel. Мы добавим кнопку запуска макроса прямо на рабочий лист, как графический объект. Для этого:

  • В Excel 2003 и старше — откройте панель инструментов Формы через меню Вид — Панели инструментов — Формы (View — Toolbars — Forms)
  • В Excel 2007 и новее — откройте выпадающий список Вставить (Insert) на вкладке Разработчик (Developer)

Выберите объект Кнопка (Button) :

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

Создание пользовательских функций на VBA

Создание пользовательских функций или, как их иногда еще называют, UDF-функций (User Defined Functions) принципиально не отличается от создания макроса в обычном программном модуле. Разница только в том, что макрос выполняет последовательность действий с объектами книги (ячейками, формулами и значениями, листами, диаграммами и т.д.), а пользовательская функция — только с теми значениями, которые мы передадим ей как аргументы (исходные данные для расчета).

Чтобы создать пользовательскую функцию для расчета, например, налога на добавленную стоимость (НДС) откроем редактор VBA, добавим новый модуль через меню Insert — Module и введем туда текст нашей функции:

Обратите внимание, что в отличие от макросов функции имеют заголовок Function вместо Sub и непустой список аргументов (в нашем случае это Summa). После ввода кода наша функция становится доступна в обычном окне Мастера функций (Вставка — Функция) в категории Определенные пользователем (User Defined) :

После выбора функции выделяем ячейки с аргументами (с суммой, для которой надо посчитать НДС) как в случае с обычной функцией:

Ссылка на основную публикацию
Эффект крови на экране
Мы с вами попытаемся создать приложение, которое заставит монитор истекать кровью. Использовать эту программу можно на компьютере жертвы во время...
Что случилось с facebook
На форумах и в поисковых запросах часто встречается вопрос, почему не работает Фейсбук сегодня, и что делать в такой ситуации....
Что смотрят в интернете больше всего
Наверное, многим интересно, что чаще всего запрашивают люди в поисковиках, какие поисковые запросы самые популярные и востребованные. Ошибки и опечатки...
Эффективная антенна для цифрового телевидения своими руками
Сегодня эфирное телевидение наиболее распространено среди пользователей. Оно работает путем улавливания излучения от вещателя на приемник. В силу ряда факторов...
Adblock detector