Oc-windows.ru

IT Новости из мира ПК
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Как написать и использовать собственную надстройку в Excel

Как написать и использовать собственную надстройку в Excel

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

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

Если макросов много, а используются они часто более рационально будет создание собственной надстройки Excel — отдельного файла особого формата (xla – Excel2003, xlam – Excel2010 и старше), содержащего все макросы.

Плюсы такого подхода очевидны:

  • больше не будет срабатывать защита от макросов, потому что надстройки по определению входят в доверенные источники;
  • однократное подключение надстройки в Excel. Теперь её VBA процедуры и функции можно будет использовать в любом файле на компьютере. Сохранять ваши рабочие файлы в xlsm- и xlsb-форматы, также не требуется потому, что исходный текст будет храниться не в них, а в файле надстройки.
  • можно сделать отдельную вкладку на ленте Excel для запуска макросов надстройки.
  • Надстройку легко переносить с компьютера на компьютер — это отдельный файл.

Рассмотрим процесс создания своей собственной надстройки для Excel на примере Excel 2010.

1. Создать файл надстройки

Открываем Excel с пустой книгой и сохраняем ее в формате надстройки с помощью команды Файл — Сохранить как, например, Excel Plus ), указав тип файла Надстройка Excel (Excel Add-in) :

По умолчанию Excel хранит надстройки в папке C:Users<Учетная запись пользователя >AppDataRoamingMicrosoftAddIns , но можно указать и любую другую папку.

2. Подключить созданную надстройку

Теперь созданную нами на прошлом шаге надстройку ExcelPlus надо подключить к Excel. Для этого в меню Файл — Параметры — Надстройки , жмем на кнопку Перейти в нижней части окна:

Если вы скопировали файл надстройки в папку по умолчанию, то новая надстройка ExcelPlus должна появиться в списке доступных надстроек:

Либо в этом окне жмем Обзор и указываем положение нашего файла надстройки.

Ставим флажок напротив названия настройки и жмем ОК.

3. Добавить макросы в надстройку

Теперь надстройка подключена к Excel, но она не может работать, так как в ней отсутствуют макросы. Добавим макрос в надстройку. Для этого откроем редактор VBA по Alt+F11 или кнопкой Visual Basic на вкладке Разработчик :

В левом верхнем углу редактора должно быть окно Project

В этом окне отображаются все открытые книги и запущенные надстройки Excel, в том числе и наша надстройка — VBAProject ( ExcelPlus.xlam) Выделите её мышью и добавьте в неё новый модуль через меню Insert — Module .

В этом модуле будет хранится VBA-код макросов надстройки.

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

После вставки кода нужно нажать на кнопку сохранения дискетку в левом верхнем углу.

Такие макросы как FindCyr называют еще процедурами . Макросы в составе надстроек можно запустить также как обычные макросы:

  • при помощи сочетания клавиш Alt+F8 , а затем нажать кнопку Выполнить (макросы надстроек здесь не видны. Несмотря на это, мы можем ввести имя нашей процедуры в поле Имя макроса );
  • назначить сочетание клавиш для быстрого запуска макроса — кнопка Параметры в окне Макрос
  • создать кнопку для нашего макроса на панели быстрого доступа в левом верхнем углу окна.

Подробнее и с картинками о способах запуска макроса написано здесь.

Мы же позже разберем, как создать отдельную вкладку на ленте Excel для запуска макросов надстройки, но сначала рассмотрим добавление в надстройку пользовательских функций.

4. Добавить функции в надстройку

Кроме макросов-процедур , существуют еще и макросы-функции или пользовательская функция. Создадим в нашей надстройке еще один модуль меню Insert — Module и вставим туда код функции, которая находит сумму ячеек нужного цвета:

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

Функцию невозможно запустить как предыдущий макрос-процедуру через диалоговое окно Макросы и кнопку Выполнить . Ее нужно использовать как стандартную функцию листа (СУММ, ЕСЛИ, . ), т.е. просто ввести в любую ячейку, указав в качестве аргументов ячейку с цветом-образцом и диапазон суммирования:

Или ввести через стандартное диалоговое окно вставки функции (кнопка fx в строке формул), выбрав категорию Определенные пользователем :

У созданных пользователем функций отсутствует описание функции в нижней части окна. Чтобы его добавить, нужно:

  1. Открыть редактор VBA по Alt+F11 .
  2. Выделить нашу надстройку в панели Project и нажмите клавишу F2 , чтобы открыть окно Object Browser
  3. Выбрать в верхней части окна в выпадающем списке свой проект надстройки (в конце списка)
  4. Щелкнуть по появившейся функции правой кнопкой мыши и выберите команду Properties .
  5. Ввести описание функции в окно Description:

После перезапуска у функции должно отобразиться описание:

5. Создать вкладку надстройки в интерфейсе Excel

Отдельная вкладка с кнопкой запуска нашего макроса будет появляться в интерфейсе Excel после подключения нашей надстройки.

Мы будем писать код вкладки с помощью бесплатной программы для редактирования XML Ribbon XML Editor

  1. Закрыть все окна Excel.
  2. Запустить программу Ribbon XML Editor и открыть в ней файл надстройки Excel Plus.xlam .
  3. При помощи кнопки tabs в левом верхнем углу добавить заготовку кода для новой вкладки
  4. В кавычки по стрелке нужно вписать id — любые уникальные идентификаторы вкладки и группы, а в label — названия вкладки и группы кнопок на ней:

— Id – идентификатор кнопки;
— label — текст на кнопке;
— imageMso — условное название изображения на кнопке(иконка). Иконку можно выбрать из большого числа изображений, щелкнув по кнопке:

— onAction — имя процедуры обратного вызова — специального короткого макроса, который будет запускать основной макрос FindCyr . Назвать эту процедуру можно, например, FindCyrStart .

Это всё — надстройка готова к использованию. Теперь использовать макросы в работе станет намного проще. Если показалось, что настройка ленты – это слишком сложно, всегда можно использовать кнопки для запуска макросов из панели быстрого запуска.

Создание макросов в MS EXCEL
методическая разработка по информатике и икт (11 класс)

Наталья Романова

Репетиторы Учи.Дома помогут подготовиться к ЕГЭ. Приходите на бесплатный пробный урок, на котором репетиторы определят ваш уровень подготовки и составят индивидуальный план обучения.

Бесплатно, онлайн, 40 минут

Предварительный просмотр:

Лекция: «Создание макросов в приложении MS Ехсеl».

План лекции для студентов II курса :

  • Понятие макроса.
  • Запись простых макросов.
  • Выполнение макросов.
  • Назначение макроса для графическич изображений.
  • Удаление макросов из списка макросов.
  • Ограниченность макросов.

Основное назначение макросов — это автоматизация работы пользователя.

Макрос — это имеющая имя последовательность заданных пользователем команд, и действий хранящаяся в форме программы на языке Visual Basic for Application ( VВА), которую может выполнить
приложение.

На сегодняшний день Visual Basic for Application (VВА) — один из самых простых в изучении и применении языков программирования для автоматизации приложений, входящих в пакет Microsoft Offic.
Запись макросов в приложении Ехсеl:

Для работы с макросами в приложении Ехсеl имеется специальная панель.
Меню: Вид- Панель инструментов — Visual Basic .

Общий алгоритм записи макроса:

  • Нажать на кнопку «Запись макроса» на панели Visual Basic
  • В диалоговом окне «Запись макроса» дать имя макросу.

Первым символом имени макроса должна быть буква. В имени макроса не допускается использование пробелов.

  • Выполнить действия, которые нужно записать.
  • Нажать кнопку «Остановить запись» на панели Visual Basic.

Рассмотрим процедуру записи макросов на примере очень простого макроса, который изменяет шрифт и цвет в выделенном диапазоне ячеек. Эти действия в Ехсеl можно выполнить многими различными способами (например, применение стилей, автоформатирования и т.д.), этот пример продемонстрирует последовательность действий пользователя, необходимые для записи макроса).

1. В ячейку А4 введите ваше имя, в ячейку А5 введите фамилию, в ячейку А6 — город, где вы родились, в ячейку А7 — название страны.

2. Установите курсор в ячейке А4.
3. На панели Visual Basic нажмите кнопку «Запись макроса» Рисунок 4

4. Введите название макроса «ЦветШрифт» и нажмите клавишу «ОК». На экране появится панель инструментов «Остановить запись» Рисунок 5

ВНИМАНИЕ! КАЖДОЕ ВАШЕ ДЕЙСТВИЕ ЗАПИСЫВАЕТСЯ.

5. Выполните команду Формат – Ячейки — Шрифт — Размер 11- Цвет красный — ОК .
6. Щелкните на кнопке «Остановить запись» на панели Visual Basic. Запись макроса завершена.

При выполнении макроса приложение Ехсеl повторяет те же действия, которые вы выполнили в процессе его создания. Продолжим работу с созданным макросом.

1.Установить курсор в ячейку А4.

2.Выполнить команду Сервис-Макрос-Макросы

3.Выделите макрос ЦветШрифт и Выполнить.
4.Аналогично с ячейками А3 и А4.

Назначение макроса графическим изображениям.

Продолжим работу с заданием I.

1. Используя панель Рисование, нарисуйте на листе любую автофигуру.
2.Щелкните правой кнопкой мыши на изображении и в открывшемся контекстном меню выберите команду Назначить макрос. Отобразится диалоговое окно Назначить макрос объекту.
3. Выберите макрос «ЦветШрифт» и подтвердите выполнение операции.
4. Щелкните вне графического изображения, чтобы снять выделение с объекта.
5. Введите число и проверьте выполнение макроса.

Удаление макросов из списка макросов:

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

1. Выполнить команду Сервис — Макрос — Макросы .
2. Выделить макрос, подлежащий удалению и щелкнуть по кнопке «Удалить».
3. Подтвердить выполнение операции в специальном окне, которое появится.

В Ехсеl многие процедуры можно выполнить с помощью макросов, но макросы имеют и ограничения. С помощью макросов нельзя выполнить различные действия в зависимости от содержимого ячейки, нельзя вызвать некоторые диалоговые окна Ехсе1, например, сохранить документ, нельзя отобразить и использовать пользовательские формы ввода данных.
Эти ограничения приводят к необходимости создания программ на VВА.
Задания для самостоятельного выполнения.

1.Введите в диапазон F1:F5 любые числа. Создайте макрос для очистки диапазона F1:F5. С помощью панели инструментов «Рисование» создайте кнопку с надписью «Очистить». Назначьте кнопке созданный макрос.
2. Введите в диапазон С2:С6 фамилии ваших друзей, а в диапазон D2:D6 занесите их телефоны.

Создайте две кнопки с названиями «Выделенное скопировать» и «Вставить». По нажатию на первую кнопку выделенный диапазон должен копироваться в буфер обмена. По нажатию на вторую кнопку информация из буфера обмена должна выводиться в текущую ячейку.

Задание II. Текст по столбцам

В столбец А введите исходные данные:

Необходимо номера и телефоны разнести по разным столбцам.
В Ехсеl существует специальная команда для выполнения этой операции

Данные — Текст по столбцам.

  1. Выделите все ячейки столбца А, где занесены исходные данные;
  2. Выполните команду Данные-Текст по столбцам , появится диалоговое окно.
    В этом окне укажите формат данных –« с разделителями» . Нажмите кнопку «Далее».
  3. Во втором диалоговом окне укажите символом – разделителем является «пробел» Нажмите кнопку «Далее».
  4. В третьем окне установите для каждого столбца данных формат данных
    ( текстовой) и «Поместить в – щелкните по нужной ячейки ( =$C$1 )»- первый столбец, (=$D$1) – второй столбец – «Готово»

Создайте макрос для разбора данных по ячейкам. Привяжите макрос к автофигуре. Создайте макрос для очистки ячеек, в которые заносятся разобранные данные.
ЗаданиеIII. Подведение промежуточных итогов с применением макросов.

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

  1. Откройте лист «Итоги»
  2. В столбце «Сумма» значение рассчитайте по формуле
  3. Отсортируйте таблицу по столбцу «Товар».

В процессе подготовки отчетов часто требуется подводить итоги. Возможности Ехсel позволяют автоматически вносить промежуточные итоги в таблицы, не задавая вручную области или формулы для них. Иногда требуется выделять и показывать на экране только часть информации из созданного отчета. В зависимости от цели отчета, в него может быть включена полная информация рабочего листа, только промежуточные и общие итоги или только общие итоги.

Рассмотрим использование команды «Итоги» на нашем примере. Подсчитаем, на какую сумму было продано отдельно ксероксов и отдельно факсов.

1.Установим курсор на любую ячейку отсортированной таблицы .
2.Выполним команду Данные-Итоги. В появившемся диалоговом окне «Промежуточные итоги» в строке При каждом изменении в выберем из открывшегося списка название графы «Товары», в строке Операция — функцию Сумма , в строке Добавить итоги по — выберем название графы «Сумма» — ОК

Установите курсор на исходную таблицу. Если таблица не отсортирована ,отсортируйте по полю «Товар» Данные-Сортировка.

1.Для создания 1 макроса активизируйте любую ячейку таблицы и MacroRecorde с помощью команды Сервис-Макрос-Начать запись . Назначьте имя макроса «Итоги»- ОК
2.Выполним команду Данные-Итоги
В диалоговом окне выберете в строке
При каждом изменении в выберем из открывшегося списка название графы «Товары», в строке Операция — функцию Сумма , в строке Добавить итоги по — выберем название графы «Сумма» — ОК
3.Активизируйте опцию Итоги под данным . Нажмите клавишу ОК
Остановите запись макроса, нажав на кнопку Остановить запись .
Просмотрите записанную программу. Для этого выполните команду Сервис-Макрос-Макросы. Выделите макрос «Итоги» и нажмите кнопку Изменить. Это вызовет появление главного окна редактора VВА с текстом записанного макроса .
4. Для создания 2-ого макроса «Убрать промежуточные итоги»:
Активизируйте MacroRecorde с помощью команды Сервис-Макрос-Начать запись. Появится диалоговое окно «Запись макроса». Назначить имя макроса «Убратьитоги» Установите курсор в исходную таблицу. Выполните команду Данные—Итоги. В появившемся окне щелкнуть по кнопке « Убрать все». Остановите запись макроса, нажав на кнопку Остановить запись.
На листе «Итоги» создадим кнопки и привяжем к ним созданные макросы .

Макросы в excel 2007,2010 Понятие макроса

Макрос — это программа, состоящая из списка команд, которые должны быть выполнены приложением. Макрос служит для объ­единения нескольких различных действий в одну процедуру, ко­торую можно вызвать. Такой список команд состоит, в основ­ном, из макрооператоров, тесно связанных с командами прило­жений из MS Office. Большая часть макрооператоров соответствует командам меню или параметрам, которые задаются в диалоговых окнах.

Выделяются три основные разновидности макросов:

командные — наиболее распространенные макросы, которые обычно состоят из операторов, эквивалентных тем или иным командам меню или параметрам диалоговых окон. Основным предназначением таких макросов является выполнение дейст­вий, аналогичных командам меню — т. е. изменение окруже­ния и основных объектов приложения. Например, изменение рабочего листа или рабочего пространства MS Excel, сохране­ние или вывод на печать и т. п. Таким образом, в результате выполнения макроса вносятся изменения либо в обрабатывае­мый документ, либо в общую среду приложения;

пользовательские функции — работают аналогично встро­енным функциям MS Excel. Отличие этих функций от команд­ных макросов состоит в том, что они используют значения пе­редаваемых им аргументов, производят некоторые вычисле­ния и возвращают результат в точку вызова, но не изменяют среды приложения;

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

Создание макросов

В процессе работы с MS Excel часто приходится многократно выполнять однотипные действия. В этом случае разумно создавать макросы. От обычной программы макрос отличается в первую очередь тем, что типичная программа выполняется «под контролем» операционной системы (Windows), в то время как выполнение макроса осуществляется самим приложением (в данном случае это MS Excel). Макрос может быть создан практически так же, как и любая дру­гая программа. Для этих целей прямо из окна приложения MS Excel можно запустить редактор языка VBA. Однако есть и более простой способ создания макросов. Состоит он в том, чтобы перевести MS Excel в режим записи макроса, выполнить все те действия, которые должны выполняться данным макросом, после чего выйти из ре­жима записи макроса. Следует отметить, что этот метод применим только в тех случаях, когда макрос не слишком сложен. Тем не менее, даже при работе со сложными макросами данный метод может быть использован для генерации «базового» программного кода.

Работа по записи макросов требует дополнительной настройки конфигурации MS Excel 2007.

ПРИМЕЧАНИЕ. При записи макроса все необходимые действия записываются программой записи макроса (макрорекордер). Работа макрорекордера во многом напоминает запись с помощью обычного магнитофона (диктофона). При этом перемещение курсора по ленте и рабочей книги не включается в записанные команды.

Excel works!

menu

Что такое макрос? Макрос — это сохраненная последовательность действий или программа, созданная на языке VBA (Visual Basic for Application). Частый вопрос «Как написать макрос в Excel?». -Просто.

Т.е. если нам необходимо выполнять одни и те же действия несколько раз, мы можем запомнить эти действия и запускать их одной кнопкой. Я не буду заставлять вас учить язык VBA и даже не буду предлагать много стандартных макросов в этой статье. В действительности создать/написать макрос в Excel сможет действительно каждый. Для этого существует самая интересная и необычная возможность Excel — Макрорекордер (запись ваших действий в виде кода). Т.е. вы можете записать свои действия, как на видео, и перевести их в код (последовательность).

Короче, если вы каждый день выполняете одни и те же действия, стоит разобраться, как автоматизировать этот процесс. Читайте далее, как написать макрос в Excel?

написать макрос в Excel

Что нужно сделать сначала, чтобы все работало корректно?

1.Разрешить использование макросов

Меню (круглая кнопка вверху слева) — Параметры Excel — Центр управления безопасностью — Параметры центра управления безопасностью — Параметры макросов. Поставьте флажок «Включить все макросы».

Или сделать тоже самое на вкладке Разработчик

2. Включить меню Разработчик для быстрой работы с макросами

Меню (круглая кнопка вверху слева) — Параметры Excel — Основные — Показывать вкладку Разработчик.

razrabotchik

3. Сохранить макрос в нужном формате

Чтобы созданный макрос сохранился в книге, необходимо сохранить файл в специальном формате .xlsm или .xlsb. Нажмите Сохранить как — Книга Excel с поддержкой макросов или Двоичная книга.

makrosyi

Итак, как написать макрос в Excel?

Все просто. Заходим в Excel. Внизу страницы, под ярлычками листов есть кнопка «Запись макроса».

написать макрос в Excel

Нажимаем кнопку, открывается окно «Запись макроса». Называем макрос как нам нравится в поле Имя макроса:. Задаем сочетание клавиш, которыми потом будем вызывать его (не обязательно).

написать макрос в Excel

Жмем ОК. Начались запись Макрорекордера.

Все. Теперь делаем те действия, которые нам нужно запомнить макросом. К примеру, нам нужно удалить одну строку и раскрасить ячейку А1 желтым цветом.

Во время этих манипуляций вместо кнопки «Запись макроса» под листами, будет гореть квадратик, нажав на который вы остановите выполнение макроса.

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

Как запустить то, что получилось? Нажмите кнопку alt + f8, появится окно Выбор макроса, выбирите нужный макрос, а затем щелкните кнопку выполнить.

Как посмотреть что получилось? Нажмите кнопку alt + f8 . Выберите нужный макрос и нажмите изменить. Откроется окно записи макросов (окно VBA)

Код макроса должен получиться примерно следующим.

‘ — символ комментария, т.е. эта строка не участвует в коде. Для макроса обязательно наличие имени (Sub Пример1()) и окончания (End Sub).

Как создать кнопку для макроса можно прочитать здесь .

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

Читать еще:  Что такое индексирование фалов на жёстком диске
Ссылка на основную публикацию
Adblock
detector
×
×