Пример надстройки для excel

Даже если вы не умеете программировать, то существует множество мест (книги, сайты, форумы), где можно найти готовый код макросов на VBA для огромного количества типовых задач в Excel. По моему опыту, большинство пользователей рано или поздно собирают свою личную коллекцию макросов для автоматизации рутинных процессов, будь то перевод формул в значения, вывод суммы прописью или суммирования ячеек по цвету. И тут встает проблема — код макросов на Visual Basic нужно где-то хранить, чтобы потом использовать в работе.

Самый простой вариант — сохранять код макросов прямо в рабочем файле, зайдя в редактор Visual Basic с помощью сочетания клавиш Alt+F11 и добавив новый пустой модуль через меню Insert — Module:

Добавление модуля в книгу

При таком способе возникает, однако, несколько неудобств:

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

Более изящным решением будет создание своей собственной надстройки (Excel Add-in) — отдельного файла особого формата (xlam), содержащего все ваши «любимые» макросы. Плюсы такого подхода:

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

Давайте рассмотрим весь процесс создания своей собственной надстройки для Microsoft Excel по шагам.

Шаг 1. Создаем файл надстройки

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

Сохраняем файл в формате надстройки

Обратите внимание, что стандартно Excel хранит надстройки в папке C:UsersВаше_имяAppDataRoamingMicrosoftAddIns, но, в приниципе, можно указать любую другую удобную вам папку.

Шаг 2. Подключаем созданную надстройку

Теперь созданную нами на прошлом шаге надстройку MyExcelAddin надо подключить к Excel. Для этого идем в меню Файл — Параметры — Надстройки (File — Options — Add-Ins), жмем на кнопку Перейти (Go) в нижней части окна. В открывшемся окне жмем кнопку Обзор (Browse) и указываем положение нашего файла надстройки.

Если вы все сделали правильно, то наша MyExcelAddin должна появиться в списке доступных надстроек:

Список надстроек

Шаг 3. Добавляем в надстройку макросы

Наша надстройка подключена к Excel и успешно работает, но в ней нет пока ни одного макроса. Давайте её наполним. Для этого нужно открыть редактор Visual Basic сочетанием клавиш Alt+F11 или кнопкой Visual Basic на вкладке Разработчик (Developer). Если вкладки Разработчик не видно, то её можно отобразить через Файл — Параметры — Настройка ленты (File — Options — Customize Ribbon).

В левом верхнем углу редактора должно быть окно Project (если его не видно, то включите его через меню View — Project Explorer):

Project Explorer

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

Код можно либо набрать «с нуля» (если вы умеете программировать), либо скопировать откуда-нибудь уже готовый (что гораздо проще). Давайте, для пробы, введем в добавленный пустой модуль код простого, но полезного макроса:

Код макроса

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

Наш макрос FormulasToValues, как легко сообразить, преобразует формулы в значения в выделенном предварительно диапазоне. Иногда такие макросы называют еще процедурами. Чтобы его запустить, нужно выделить ячейки с формулами и открыть специальное диалоговое окно Макросы с вкладки Разработчик (Developer — Macros) или сочетанием клавиш Alt+F8. Обычно в этом окне отображаются доступные макросы из всех открытых книг, но макросы надстроек здесь не видны. Несмотря на это, мы можем ввести имя нашей процедуры в поле Имя макроса (Macro name), а затем нажать кнопку Выполнить (Run) — и наш макрос заработает:

Здесь же можно назначить сочетание клавиш для быстрого запуска макроса — за это отвечает кнопка Параметры (Options) в предыдущем окне Макрос:

Назначаем сочетание клавиш макросу

При назначении клавиш имейте ввиду, что здесь учитывается регистр и раскладка клавиатуры. Поэтому, если вы назначите сочетание, например, Ctrl+Й, то, по факту, вам придется в будущем следить за тем, чтобы у вас была включена именно русская раскладка и жать дополнительно Shift, чтобы получить заглавную букву.

Для удобства можно добавить и кнопку для нашего макроса на панель быстрого доступа в левом верхнем углу окна. Для этого выберите Файл — Параметры — Панель быстрого доступа (File — Options — Customize Quick Access Toolbar), а затем в выпадающем списке в верхней части окна опцию Макросы. После этого наш макрос FormulasToValues можно поместить на панель кнопкой Добавить (Add) и выбрать для него значок кнопкой Изменить (Edit):

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

Шаг 4. Добавляем в надстройку функции

Кроме макросов-процедур, существуют еще и макросы-функции или как их еще называют UDF (User Defined Function = пользовательская функция). Давайте создадим в нашей надстройке отдельный модуль (команда меню Insert — Module) и вставим туда код такой функции:

Пользовательская функция

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

Заметьте, что синтаксис функции отличается от процедуры:

  • используется конструкция Function …. End Function вместо Sub … End Sub
  • после названия функции в скобках указываются её аргументы
  • в теле функции производятся необходимые вычисления и затем результат присваивается переменной с названием функции

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

Используем созданную UDF

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

Выбираем пользовательскую функцию

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

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

Добавляем свое описание для UDF

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

Описание функции

Шаг 5. Создаем вкладку надстройки в интерфейсе

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

Информация об отображаемых вкладках по умолчанию содержится внутри книги и должна быть оформлена в виде специального XML-кода. Проще всего писать и редактировать такой код с помощью специальных программ — XML-редакторов. Одна из самых удобных (и бесплатных) — это программа Максима Новикова Ribbon XML Editor.

Алгоритм работы с ней следующий:

  1. Закройте все окна Excel, чтобы не было конфликта файлов, когда мы будем редактировать XML-код надстройки.
  2. Запустите программу Ribbon XML Editor и откройте в ней наш файл MyExcelAddin.xlam
  3. При помощи кнопки tabs в левом верхнем углу добавьте заготовку кода для новой вкладки:

    Добавляем новую вкладку для надстройки

  4. В пустые кавычки нужно вписать id нашей вкладки и группы (любые уникальные идентификаторы), а в label — названия нашей вкладки и группы кнопок на ней:

    Добавляем id и названия

  5. При помощи кнопки button на панели слева добавляем заготовку кода для кнопки и дописываем к ней теги:

    Добавляем кнопку

    — label — это текст на кнопке
    — imageMso — это условное название изображения на кнопке. Я использовал иконку с красной кнопкой, которая имеет название AnimationCustomAddExitDialog. Названия всех доступных кнопок (а их несколько сотен!) можно найти на большом количестве сайтов в интернете, если искать по ключевым словам «imageMso». Для начала можно сходить сюда.
    onAction — это имя процедуры обратного вызова — специального короткого макроса, который будет запускать наш основной макрос FormulasToValues. Назвать эту процедуру можно как угодно. Мы добавим её чуть позже.

  6. Проверить правильность всего сделанного можно с помощью кнопки с зеленой галочкой сверху на панели инструментов. Там же рядом нажмите на кнопку с дискетой для сохранения всех изменений.
  7. Закрываем Ribbon XML Editor
  8. Открываем Excel, заходим в редактор Visual Basic и добавляем к нашему макросу процедуру обратного вызова KillFormulas, чтобы она запускала наш основной макрос замены формул на значения.

    Добавляем процедуру обратного вызова

  9. Сохраняем внесенные изменения и, вернувшись в Excel проверяем результат:

    Созданная вкладка для надстройки

Вот и всё — надстройка готова к использованию. Наполните её своими процедурами и функциями, добавьте красивые кнопки — и использовать макросы в работе станет намного проще.

Ссылки по теме

  • Что такое макросы, как их использовать в работе, где взять код макросов на Visual Basic.
  • Как сделать заставку при открытии книги в Excel
  • Что такое Личная Книга Макросов и как её использовать

Надстройки Excel позволяют пользователям расширять функциональные возможности Microsoft Excel и помогают им сэкономить время и силы.

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

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

Надстройки Excel — это те дополнительные инструменты, предназначенные для разных целей, которые мы рассмотрим в этой статье.

Давайте узнаем больше о надстройках Excel и о том, как они могут вам помочь.

Что такое надстройки Excel?

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

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

Где можно найти надстройки Excel?

На рынке существует более 2000 надстроек Excel, и они могут работать на определенных версиях Windows, macOS, Android и iOS. Чтобы найти надстройки Excel, достаточно выполнить несколько шагов:

  • Откройте любой документ или создайте новый в Word, Excel или PowerPoint.
  • В Windows вы найдете вкладку «Вставка» в открытом документе. Просто нажмите на нее и выберите «Мои надстройки», чтобы увидеть список всех доступных надстроек.
  • Откройте окно надстроек и нажмите «Магазин». Теперь вы можете найти надстройки и установить нужную, нажав «Добавить».

Процесс поиска надстроек Excel одинаков для Mac, но немного отличается для Outlook. Если вы хотите установить надстройку в Outlook на рабочем столе, выберите значок «Магазин», который вы можете найти на «Главной». Далее вы можете искать надстройки и устанавливать их, аналогично тому, что мы делали для Windows.

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

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

Если вы по-прежнему не можете найти его, снова откройте окно надстроек Excel и выберите нужную надстройку. Нажмите «Добавить». Это запустит надстройку Excel на панели задач внутри приложения Excel.

Как удалить: если вы хотите удалить установленную вами надстройку Excel, для этого нет возможности. Но вы можете отключить или скрыть их. Для этого откройте окно надстроек Excel, найдите «Управление моими надстройками» и нажмите на него. Затем перейдите в «Моя учетная запись» из раскрывающегося списка и нажмите «Скрыть». Это скроет надстройку, которую вы больше не хотите использовать.

Давайте теперь рассмотрим некоторые из наиболее полезных надстроек Excel для вас.

Power Pivot

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

В книге Excel используется простая модель данных, но в Power Pivot вы найдете более сложную модель данных. Любые данные, которые вы импортируете в Excel, также доступны в Power Pivot, и обратное тоже верно. Вы также можете создавать сводные диаграммы и сводные таблицы для анализа данных и своевременного принятия бизнес-решений.

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

Инструмент использует DAX (выражения анализа данных), язык формул, который полезен для расширения возможностей обработки данных в Excel. В Power Pivot вы можете переименовывать столбцы, таблицы и фильтровать данные во время импорта.

Кроме того, создайте KPI (ключевые показатели эффективности) для использования в отчетах Power View и сводных таблицах. Легко делитесь своими книгами с другими так же, как вы делитесь файлами. Получите больше преимуществ, опубликовав книгу в среде SharePoint, чтобы другие могли анализировать данные.

Суперметрики

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

Supermetrics — это быстрый и простой способ импортировать данные в Excel, подключив их к вашим маркетинговым инструментам. Для начала выберите измерение и показатели, которые вы хотите извлечь из маркетинговых инструментов, и позвольте Supermetrics переместить их непосредственно в выбранные ячейки.

При перемещении данных Supermetrics гарантирует, что ваши данные не будут изменены. Все данные, которые вы перемещаете, будут одинаковыми с высочайшим уровнем точности, поэтому вы сможете быстро начать их использовать. Supermetrics интегрируется с популярными рекламными и маркетинговыми платформами, такими как Facebook Ads, Google Ads, Instagram Insights, Google Analytics, LinkedIn Ads, HubSpot, YouTube, Mailchimp и т. д.

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

Они никогда не хранят пользовательские данные; они перемещают их в Excel. Они соответствуют требованиям CCPA и GDPR и имеют более 500 тысяч пользователей по всему миру, включая такие бренды, как Dyson, BBC и Nestle.

Сила Запрос

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

Идентифицируйте данные из своих рабочих источников, таких как Excel, XML и текстовые файлы, веб-страницы, каналы OData, Hadoop HDFS, реляционные базы данных и т. д. Используйте параметр поиска, чтобы найти важные данные извне и внутри вашей организации в Excel.

Разрозненные источники данных, формируйте их и объединяйте данные из нескольких источников, чтобы подготовить их к анализу на следующем этапе с помощью таких инструментов, как Power Pivot и Excel, и средств визуализации, таких как Power Map и Power View. С помощью Power BI вы можете делиться запросами, которые у вас есть или созданными в вашей организации, чтобы пользователи могли легко их искать.

Power Query поддерживает такие операционные системы, как Windows Server 2008 R2, Windows Server 2012, Windows 7, Windows 8 и Windows 8.1. Кроме того, он поддерживает офисные версии, такие как Microsoft Office 2010 Professional Plus с программным обеспечением и Microsoft Office 2013. Для Power Query также требуется Internet Explorer 9 или выше, и он доступен для 32-разрядных и 64-разрядных платформ.

Power Query предлагает такие возможности, как Active Directory, источники данных на базе Azure, Dynamics CRM, Oracle, MySQL, Sybase, Exchange, Teradata, Salesforce, BusinessObjects, списки SharePoint, каталог данных Power BI и многие другие.

Бесплатный многоцелевой инструмент моделирования Excel содержит множество инструментов для форматирования, моделирования в Excel и навигации. Все инструменты готовы к использованию и просты, а инструмент «Навигация» позволяет найти лист в активной книге.

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

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

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

Пакет инструментов анализа

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

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

Загрузите программу надстройки Analysis ToolPak из категории надстроек. Он включает в себя несколько инструментов для выполнения анализа:

  • дисперсионный анализ: Этот инструмент анализа обеспечивает несколько типов анализа. Он имеет инструмент однофакторного анализа и инструмент двухфакторного анализа с повторением и без повторения.
  • Корреляция: Функции КОРРЕЛ и ПИРСОН вычисляют коэффициент корреляции между двумя переменными, взятыми из N объектов.
  • Ковариация: Это похоже на корреляцию. Он используется, когда имеется ‘n’ количество объектов.
  • Описательная статистика: Он генерирует отчет, предоставляющий информацию об изменчивости данных и центральной тенденции.

Другими аналогичными инструментами являются экспоненциальное сглаживание, F-тест двух выборок на дисперсию, анализ Фурье, гистограмма, скользящее среднее, генерация случайных чисел, ранг и процентиль, регрессия, выборка, t-тест и z-тест.

АСАП Утилиты

АСАП Утилиты — это надежная надстройка Excel с инструментами для добавления дополнительных функций в Excel. Разработанная в 1999 году, эта надстройка является одной из самых популярных в мире надстроек Excel и может помочь вам ускорить работу и сэкономить время.

ASAP или утилиты «Как можно скорее» называются так потому, что они могут значительно сократить трудоемкую работу с помощью полезных утилит или инструментов макросов. Экономящие время дополнения и функции для Excel являются результатом многолетней тщательной разработки в сочетании с отзывами пользователей.

Они постоянно обновляют инструменты, чтобы предоставить пользователям оптимальный опыт, и поддерживают удобный интерфейс. В настоящее время более 750 000 человек использовали ASAP Utilities в более чем 170 странах, включая более 23 000 организаций.

Доступна бесплатная версия — Home & Student — для школьных занятий, домашних проектов и некоммерческих организаций.

Деньги в Экселе

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

Глядя на эти данные, вы можете оптимизировать свои расходы и быстрее достичь своих финансовых целей. Эта надстройка доступна для всех пользователей Microsoft 365 и личных подписчиков из США. Этот инструмент можно настроить, чтобы сделать его более подходящим для вашего использования.

Деньги в Excel также предоставляют адаптированные диаграммы для просмотра данных с ясностью или создания диаграмм самостоятельно с помощью интересных функций. Вы можете импортировать учетные данные своей учетной записи и данные транзакций в Money в Excel и легко их синхронизировать. Он также дает вам персонализированные советы по управлению вашими финансами внутри Excel.

Бухгалтерский сбор

Accounting Collection — это полный набор надстроек для Excel, связанных с бухгалтерским учетом. Включено 17 надстроек, которые служат различным целям и упрощают работу с Excel. Они есть:

Лучше всего то, что все эти надстройки поставляются с пошаговыми инструкциями и файлами упражнений, которые упрощают изучение того, как использовать Accounting Collections. Используя их, вы можете на практике освоить все функции.

Accounting Collection можно приобрести единовременно за 89,95 долларов США.

Люсидчарт

Визуально сообщайте о сложных задачах и процессах в Excel с помощью карт процессов, диаграмм и блок-схем. Люсидчарт поделиться своими уникальными идеями с другими. Этот инструмент легко установить в Microsoft Excel, Word и PowerPoint.

Просто зайдите в Microsoft Store и вставьте Lucidchart, выполнив поиск в списке доступных надстроек. Затем установите Lucidchart и начните создавать диаграммы. Он поставляется с простым пользовательским интерфейсом с функцией перетаскивания, который имеет почти ровную кривую обучения. Они также предоставляют множество примеров и шаблонов для создания блок-схем.

Выполняйте свою работу без хлопот и стресса; начните импортировать и экспортировать файлы, чтобы избавиться от повторяющихся задач. Lucidchart интегрируется с G-Suite, YouTube, Facebook, Dropbox и другими сервисами. Вы также можете публиковать свои блок-схемы в виде изображений или PDF-файлов и легко включать их в презентации и отчеты или вставлять их непосредственно на веб-страницу.

Финансовая надстройка Hoadley

Hoadley Trading and Investment Tools состоит из набора модульных программных инструментов на основе Excel для построения инвестиционных портфелей и их анализа. Этот набор инструментов полезен для портфельных инвесторов и управляющих активами.

Это включает в себя Надстройка Hoadley Finance с комплексными инструментами портфельной аналитики. Он включает в себя инструменты аналитики для:

  • Инвестиционная эффективность
  • Распределение активов с помощью Black-Litterman
  • Управление рисками
  • Оптимизация портфеля
  • Расчет корреляции, волатильности и ковариации

Надстройка «Финансы» также имеет функции для анализа опционов и различных других производных финансовых инструментов. Вы можете вызывать эти функции из макросов/модулей VBA или ячеек электронной таблицы.

Финансовый край NXT Бюджетный редактор

Создавайте бюджеты с помощью Финансовое преимущество СЛЕДУЮЩИЙ через Эксель. Он призван помочь пользователям тратить больше времени на продуктивные задачи, важные для их миссии, вместо создания новых бюджетов вручную.

Этот инструмент может ускорить процесс добавления новых бюджетов и поможет вам легко вводить такие данные, как учетные записи, гранты, сценарии и проекты в Excel. После отправки их в Financial Edge NXT вы можете настроить значения и поля и открыть новые бюджеты.

Абсолютный люкс Ablebits

Использовать Способности для ускорения вашей работы. Он поставляется с более чем 70 профессиональными инструментами, более чем 300 вариантами и различными вариантами использования, которые помогут вам безупречно выполнить свою задачу в Excel. Это идеальный пакет с инструментами для экономии времени, созданный в результате 18 лет тщательной разработки.

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

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

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

У него есть 14-дневная бесплатная пробная версия для Excel 2019, 2016, 2013, 2010 и Office 365 по цене 69 долларов.

Вывод 👩‍🏫

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

Попробуйте эти молниеносно быстрые инструменты для быстрого восстановления пароля Excel без повреждения ваших файлов.

Готовые надстройки Excel для выполнения самых различных действий.
В этом разделе вы можете скачать надстройки для Excel.

  • Надстройка FillDocuments для MS Excel: общие сведения

    Предназначение программы: заполнение множества документов данными из Excel нажатием одной кнопки.
    Для работы программы требуется таблица Excel с данными для подстановки, и папка с шаблоном (шаблонами) документов.
    В качестве шаблонов можно использовать файлы Word и Excel.
    На выходе получаются заполненные файлы исходного…

  • Структура программы «Парсер сайтов»

    Надстройка Parser для Excel — простое и удобное решение для парсинга любых сайтов (интернет-магазинов, соцсетей, площадок объявлений) с выводом данных в таблицу Excel (формата XLS* или CSV), а также скачивания файлов.
    Особенность программы — очень гибкая настройка постобработки полученных данных (множество текстовых функций, всевозможные фильтры, перекодировки, работа с переменными,…

  • Надстройка PastePictures для MS Excel: общие сведения

    Предназначение программы: вставка изображений в таблицу Excel, поиск картинок в папке или в Google, экспорт картинок из таблицы в папку.
    Основные функции программы:

    вставка фото из папки (поиск по имени файла)
    вставка картинок по ссылкам из таблицы
    поиск изображений в гугл по данным с листа Excel
    экспорт изображений с листа в файлы…

  • Логотип надстройки Unification

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

  • Сравнение столбцов в Excel, и подстановка значений в таблицу

    Программа предназначена для сравнения и подстановки значений в таблицах Excel.
    Если вам надо сравнить 2 таблицы (по одному столбцу, или по нескольким),
    и для совпадающих строк скопировать значения выбранных столбцов из одной таблицы в другую,
    надстройка «Lookup» поможет сделать это нажатием одной кнопки.
     
    То же самое можно сделать при помощи формулы =ВПР(), но:

    формулы…

  • Скриншот программы создания этикеток, наклеек, ценников и квитанций


    Программа предназначена для создания и печати этикеток, наклеек, ценников и квитанций на основании данных в таблице Excel.

    При помощи этой программы вы можете:

    распечатать ценники на товар, взяв данные из прайс-листа

    сформировать этикетки и наклейки для заданных строк вашей таблицы

    подготовить квитанции для оплаты услуг ЖКХ (счета за водоснабжение, канализацию, электроэнергию)…

  • Выпадающий календарь в ячейке листа Excel


    Надстройка samradDatePicker (русифицированная) для облегчения ввода даты в ячейки листа Excel.

    Добавляет в контекстное меня ячеек пункт выбора даты, а при выделении ячеек, содержащих дату, справа от ячейки отображает значок календаря.

    Поместите файл надстройки из вложения в папку автозагрузки Excel (C:Program FilesMicrosoft OfficeOFFICExxXLSTART).
    В контекстном меню ячеек…

  • Ввод штрих кодов со сканера в Excel


    Программа предназначена для облегчения ввода данных со сканера штрих-кодов в таблицу Excel.
     

    Вы нажимаете кнопку на сканере, — в таблице Excel автоматически находится считанный штрих-код,
    и в этой строке количество товара увеличивается на единицу.
     

    Особенности программы:

    2 режима фиксации ввода штрих-кода: по фиксированной длине, и по завершающему символу

    возможность…

  • Наверняка, вы сталкивались с ситуацией, когда необходимо производить поиск некоторого значения по всей книге Excel (искать частичное совпадение на всех листах активной книги)
     
    Штатными средствами Excel вывести поле для поиска на панель инструментов не удаётся, а вызывать каждый раз диалоговое окно нажатием комбинации клавиш Ctrl + F не всегда удобно.
    На помощь придёт эта…

  • Скриншот формы ввода (выпадающий список с поиском)


    Надстройка для облегчения ввода значений в ячейку Excel
    Автор: nerv
    Last Update: 27/03/2012
    Вам часто приходится заниматься заполнением электронных таблиц, долго и муторно выбирать варианты из выпадающих списков?
    А, может, иметь дело с одними теми же, но не структурированными данными?
    Раз так, то данная надстройка призвана облегчить Вам жизнь: сократить время, потраченное на нудную,…

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

    Прикреплённая к статье надстройка содержит модуль, который может создавать панель инструментов любой сложности при запуске файла.
    На панель можно добавлять как обычные кнопки, так и раскрывающиеся выпадающие списки, подменю, текстовые поля.
    Формирование панели инструментов происходит при загрузке файла, при закрытии же его — созданная панель скрывается:
    Private Sub Workbook_Open()…

  • Сохранить все изображения с листа в файлы

    Надстройка позволяет экспортировать все изображения с листа Excel в графические файлы.
    Доступен выбор типа создаваемых файлов (поддерживаются форматы JPG, GIF и PNG)
    Кроме того, можно указать имя папки, в которую будут помещены созданные файлы
    (эта папка будет создана автоматически в том же каталоге, где расположен обрабатываемая книга Excel)

    Если нужно сохранять картинки под именами из…

  • Скриншот надстройки автоподбора высоты ячеек

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

  • Скриншот надстройки поиска по всем листам Excel


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

    В Excel 2007 и 2010 панель инструментов можно найти на вкладке «Надстройки»:

    Надстройка SearchText является расширенной версией надстройки для…

  • Загрузка (импорт) файла CSV на лист Excel


    Надстройка предназначена для облегчения импорта данных в Excel из текстовых файлов с разделителями (например, из CSV)

    Пока во вложении — обычный файл Excel с нужными макросами, надстройку выложу позже

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

    Использовать функции…

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

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

    интерполировать табличные данные;
    находить корни уравнения;
    вычислять производные;
    численно интегрировать;
    аппроксимировать экспериментальные данные

     

    Внимание: 21 марта 2020 года выложена новая версия надстройки.

    Во вложении к статье — надстройка…

  • Окно вывода кодов символов для текущей ячейки


    Надстройка предназначена для быстрого просмотра кодов символов текста, введённого в ячейку.

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

    И вот в этих случаях на помощь приходит эта надстройка.

    С её помощью вы быстро обнаружите, что в похожих ячейках одни и те же буквы набраны в разных…

  • Скриншот результатов поиска с выводом на отдельный лист


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

    Надстройка SearchExcel является упрощённой версией надстройки для поиска на всех листах книги Excel
    Смотрите также надстройку для…


  • Надстройка предназначена для выполнения множественных замен в выделенном диапазоне ячеек.
     

    После запуска надстройки, появляется панель инструментов из 3 кнопок:

    Кнопка «Выполнить все замены» — выполняет замены в выделенном диапазоне ячеек

    Кнопка «Изменить список замен» — отображает лист настроек, где в первом столбце находится список заменяемых…

  • Поиск трасс и просмотр ресурсов оборудования


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

    Программа позволяет хранить и редактировать базу данных объектов (в виде файлов Excel), просматривать существующие трассы и формировать новые.

     

    Особенность программы — возможность учёта и администрирования узлов связи с нестандартными…

  • Панель инструментов программы обработки телефонных номеров


    Программа предназначена для обработки объявлений о продаже недвижимости.
     

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

    разносить номера из ячеек по разным столбцам или строкам…

  • Результат преобразования массива функцией ExtendArray


    Программа предназначена для обработки таблиц с тарифами на междугородную и международную телефонную связь.

    Присутствует опция выгрузки обработанной таблицы в файл формата XML.

    При запуске программы (которая выполнена в виде надстройки Excel) формируется дополнительная панель инструментов:

    Формируемый надстройкой XML-файл имеет такую структуру:

  • Скриншот формы поиска файлов в заданной папке


    Надстройка, позволяющая загрузить из выбранной папки список файлов на лист Excel.
    Автор: VictorM

    Особенности надстройки:

    задаваемая пользователем глубина поиска в подпапках

    простановка гиперссылок на листе Excel на найденные файлы

    вывод дополнительных характеристик файла

    (размер файла, дата создания файла, полный путь)

    изменяемая маска поиска (поиск по части имени файла, по…

  • Настройки программы переименования и копирования файлов

    Надстройка предназначена для переименования файлов в заданной папке.
    В качестве исходных данных (исходные и конечные имена файлов) выступает таблица Excel
    В настройках программы задаётся, в каких столбцах таблицы Excel брать имена файлов.
    При необходимости, можно указать префикс и суффикс для имен файлов.
    После запуска надстройки, на ленте Excel на вкладке НАДСТРОЙКИ появляется панель…


  • Надстройка предназначена для облегчения управления сетевым оборудованием и диагностики локальной сети из Excel.
     

    Надстройка будет полезна, если информация об оборудовании (IP-адреса, логины и пароли) хранится в книгах Excel.
    Вы сможете получить доступ к часто используемым действиям из контекстного меню Excel.
    В частности, прямо из контекстного меню ячейки можно запустить в консоли PING…

  • Назначение программы:

    Выгрузка файлов Excel на сайт (хостинг) по протоколу FTP

    облегчение процесса редактирования файлов Excel, расположенных на сайте (доступных через FTP)

    автоматизация экспорта таблиц Excel на страницы сайтов под управлением CMS Drupal

    формирование изображений формате JPG из диапазона ячеек листа Excel — нажатием одной кнопки

     
    Программа представляет собой…

  • Форма отображения картинок с листа Excel


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

    Принцип работы программы:

    надстройка отслеживает изменение выделенной области на активном листе

    если выделена одна ячейка (или несколько ячеек одной строки), то

    производится поиск столбцов, в первой ячейке…


  • Надстройка предназначена для добавления в открытый файл Excel
    скрытого листа с автообновляемым веб-запросом к сайту ЦБ РФ.
    После добавления такого листа, в вашем файле можно использовать в формулах имена USD и EURO
    для получения курсов соответствующих валют
    (при желании, надстройку можно доработать, чтобы получать курсы других валют)

    Интервал обновления данных: 30 минут

    После запуска…

  • Надстройка для отправки СМС из Excel

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

  • Сравнение исходной таблицы Excel и созданного файла plist


    Надстройка для Excel, позволяющая одним нажатием кнопки сформировать файл PLIST (Property List)

    PLIST (Property List) представляет собой гибкий и удобный формат для хранения данных приложения.
    Первоначально, данный формат был предложен компанией Apple для использования в приложениях для iPhone, а затем распространился на другие приложения.
    По своей структуре, файл с расширением .plist (…

  • Надстройка SplitFile — Разбивка файла на несколько, с заданным количеством строк

    Надстройка SplitFile позволяет создать из одного файла Excel несколько файлов, с заданным ограничением по количеству строк.
    Обычно разбивка файла (формата XLSX или CSV) требуется для загрузки данных в интернет-магазин, когда в загружаемом файле много строк (десятки тысяч),
    а движок интернет магазина не поддерживает большие файлы (или зависает из-за большого объема данных)
    В настройках программы…


  • Надстройка предназначена для быстрой конвертации выделенного диапазона ячеек в HTML код для вставки на сайт.
    При запуске надстройки, формируется панель инструментов (на ленте, на вкладке Надстройки)
    с 2 кнопками: экспорт в HTML всей таблицы, или только выделенного диапазона ячеек

     
    Файл надстройки, — во вложении к статье.
    Программа корректно обрабатывает объединённые ячейки.
    Количество…

  • Клавиша:
    Ctrl + T
    Макрос:
    Создание Текстовых Файлов

    Клавиша:
    Ctrl + 4
    Макрос:
    Окраска Объединённых Ячеек

    Клавиша:
    Ctrl + 5
    Макрос:
    Окраска Всех Объединённых Ячеек

    Клавиша:
    Ctrl + G
    Макрос:
    Объединение Значений Из Ячеек

    Клавиша:
    Ctrl + Shift + G
    Макрос:
    Разъединение Значений Из Ячеек

    Клавиша:
    Ctrl + Shift + D
    Макрос:
    Поиск Дубликатов В Книге

    Клавиша:
    Ctrl + Shift + O
    Макрос:…

  • Форма настроек программы, выбора устанавливаемых обновлений, активации надстройки


    Программа предназначена для реализации возможности автоматического и ручного обновления надстроек Excel, а также разграничения доступа и регистрации (активации) программного продукта.

    Особенности данного решения:

    публикация обновления программы через FTP нажатием одной кнопки

    автоматический поиск обновлений на сервере при запуске файла

    2 режима автообновления — установка любых…

  • Панель инструментов надстройки


    Надстройка для Excel, позволяющая добавлять на лист заранее созданные автофигуры, и проставлять для них размеры (с выносными линиями).
    На панели инструментов можно выбрать вставляемую фигуру, после чего нарисовать на ней размерные линии
    Размеры выделенной фигуры (или её части) вводятся в поля на панели инструментов
    При нажатии клавиши Enter к выделенной фигуре добавляется размерная линия (с…

  • Форма выбора папки для экспорта и типа создаваемых файлов

    Предназначение данной надстройки — экспорт всех диаграмм с листа Excel в графические файлы.
    Доступен выбор типа создаваемых файлов (поддерживаются файлы форматов JPG, GIF, PNG)
    Кроме того, можно указать имя папки, в которую будут помещены созданные файлы
    (эта папка будет создана автоматически в том же каталоге, где расположен обрабатываемая книга Excel)

    Для запуска процедуры экспорта нажмите…

  • Настройка шаблона писем для рассылки детализации звонков


    Программа предназначена для создания отчётов по детализации телефонных звонков (междугородная и международная связь), последующей упаковки созданных детализаций в ZIP архив, и автоматизированной рассылки сформированных писем абонентам.
    При запуске программа ищет в заданной папке исходные файлы с детализацией (упакованные в ZIP файлы DBF), и на основании из этих файлов формирует (по шаблону, с…

  • Скриншот листа коммерческого предложения - описание, фото и карта рекламной конструкции


    Программа предназначена для формирования коммерческих предложений по наружной рекламе.
    В качестве исходных данных выступает файл Excel со списком рекламных объектов.

    Список объектов должен содержать следующую информацию (в отдельных столбцах):

    адрес рекламной конструкции (щита)

    сторона рекламного щита или перетяжки (А, Б, В, и т.п.)

    ссылки на фото и карту рекламной конструкции
    (…

  • Перенос выделенных строк в файлы на сервере

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

  • Макрос обработки номеров телефонов

    Надстройка PhoneNumbers предназначена для обработки номеров телефонов в таблице Excel, в выводом найденный (распознанных) номеров в отдельный столбец
    Основное предназначение: Извлечение номеров телефонов из Excel файла.
    Пример исходных данных и результата можно посмотреть в прикреплённом файле Excel (на первом листе — что есть изначально, на втором — то, что получается…

  • Пример созданного оглавления прайс-листов отелей


    Надстройка предназначена для формирования оглавления прайс-листов, расположенных на отдельных листах книги Excel.

    При запуске программа формирует панель инструментов:

    Особенности программы:

    группировка строк каждого прайс-листа

    формирование обратных ссылок с прайс-листов на оглавление

     

  • Форма выбора источника и получателя данных при копировании информации в файлах Excel

    Программа предназначена для импорта данных из одного файла Excel (проект разработки нефтяных месторождений) в другой файл (форма отчета).
    Макрос выполнен в виде надстройки для Excel, добавляющей в меню приложения кнопку «Скопировать» для запуска формы.
    На форме выбираются исходное и конечное поля, нажимается кнопка «Перенести данные», — и программа, сопоставляя столбцы двух файлов, производит…

Предыстория

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

В то время, у нас, как у разработчиков, было два способа «расширить» Excel под нетиповые задачи:

  • VBA (Visual Basic for Applications);
  • VSTO (Visual Studio Tools for Office).

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

По ряду причин, обсуждение которых выходит за рамки данной статьи, я выбрал для себя вариант с VSTO. Так родилась наша первая надстройка для Microsoft Excel — XLTools. В первую версию продукта вошли инструменты, позволяющие:

  • производить очистку данных в ячейках Excel (удалять лишние пробелы и непечатные символы, приводить регистр к единому виду, и т.д.);
  • преобразовывать таблицы из «двумерного вида» в «плоский» (unpivot);
  • сравнивать данные в столбцах;
  • инструмент для автоматизации всех вышеперечисленных действий.

Появление Office Store

Буквально через год после выхода в свет первой версии надстройки XLTools, мы узнали, что Microsoft запускает новую платформу для продвижения расширений под Office – Office Store. Моя первая мысль – а можем ли мы опубликовать там нашу новую надстройку XLTools? Может к сожалению, а может к счастью, но ответ на этот вопрос – НЕТ. Ни VBA, ни VSTO надстройки не могут быть опубликованы в Office Store. Но стоит ли расстраиваться? К счастью, и здесь ответ – НЕТ, не стоит. Далее я объясню – почему.

Новая концепция Add-Ins для Office

Что же такое Office Store и для чего он нам нужен? Если кратко, то это платформа, которая помогает пользователям и разработчикам искать, скачивать, продавать и покупать надстройки, расширяющие стандартный функционал Office-программ, будь то Excel, Word, Outlook, OneNote или PowerPoint. Если раньше конечным пользователям приходилось искать нужные им надстройки в поисковиках, то сейчас для этого создано единое место – Office Store, доступ к которому возможен прямо из интерфейса офисных программ. Пункт меню «Вставка» -> «Мои надстройки»:

Как мы уже выяснили, опубликовать надстройки, разработанные с использованием VBA или VSTO, в Office Store не получится. С выходом Office 365 и Office Store, Microsoft предложила нам новый способ разработки надстроек с использованием JavaScript API для Office, подразумевающий разработку приложений с использованием веб-технологий, таких как HTML5, CSS, JavaScript и Web Services.

Новый подход обладает как преимуществами, так и недостатками. К преимуществам можно отнести:

  • Простоту установки надстроек из Office Store;
  • Кроссплатформенность из коробки (Excel 2013/2016, Excel Online, Excel for iPad);
  • Возможность использования накопленного опыта веб-разработки (нет необходимости изучать новые технологии, если в команде уже есть веб-разработчики);
  • Готовая инфраструктура, позволяющая продавать надстройки по фиксированной цене или по подписке.

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

  • Менее богатое API по сравнению с VSTO и VBA (надеюсь, эта проблема будет становиться все менее и менее актуальной с выходом новых версий API).

Разработка надстроек для Excel «по новым правилам»

Итак, с чего же начать, если мы хотим идти в ногу со временем и не упустить новую волну приложений для Office?

Есть два варианта. На текущий момент, разрабатывать приложения на базе JavaScript API мы можем в:

  • Napa – легковесная веб-версия среды разработки для быстрого старта. Будет полезна разработчикам, у которых нет Visual Studio, или тем, кто хочет разрабатывать под операционной системой, отличной от Windows;
  • Visual Studio, начиная с версии 2012, с установленным пакетом Office Developer Tools – более мощная и функциональная среда разработки. Те, кто раньше разрабатывал под VSTO, могут сразу начинать с этого варианта, т.к. Visual Studio у них уже есть.

В данной статье мы рассмотрим разработку с использованием Visual Studio, т.к. сам я использую именно ее. Если Вам интересно попробовать Napa, то ознакомиться с этим инструментом и начать работу с ним можно здесь.

Перед началом разработки стоит также обратить внимание на пару существенных отличий VBA/VSTO надстроек от надстроек для Office Store:

  • Первое отличие заключается в том, что, разрабатывая надстройки на VBA или VSTO, мы могли создавать так называемые «пакетные» продукты, в состав которых входил целый ряд функций. XLTools является отличным примером – надстройка включает в себя множество опций для работы с ячейками, таблицами, столбцами, и т.д. При разработке надстроек для Office Store о таком подходе придется забыть. Планируя разработку, мы должны задуматься над тем, какие именно законченные, изолированные друг от друга функции мы хотим предоставить конечным пользователям. В случае с XLTools, те функции, которые изначально были реализованы в одной надстройке, сейчас представлены пятью отдельными приложениями в Office Store. Такой подход позволяет сделать решения более узконаправленными и повысить количество скачиваний надстроек целевыми пользователями;
  • Второе отличие заключается в разнице между JavaScript API и VSTO/VBA API. Здесь стоит детально изучить возможности, предоставляемые JavaScript API. Для этого советую воспользоваться приложениями API Tutorial (Task Pane) и API Tutorial (Content) от Microsoft.

Разработка надстройки для Excel c использованием Visual Studio и JavaScript API

По умолчанию в Visual Studio есть предустановленные шаблоны проектов для разработки надстроек под Office Store, поэтому создание нового проекта занимает буквально секунды.

Сам проект состоит из файла-манифеста и веб-сайта. Файл манифеста выглядит так:

<?xml version="1.0" encoding="UTF-8"?>
<OfficeApp xmlns="http://schemas.microsoft.com/office/appforoffice/1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="TaskPaneApp">
  <Id>11111111-1111-1111-1111-111111111111</Id>
  <Version>1.0.1</Version>
  <ProviderName>WavePoint Co. Ltd.</ProviderName>
  <DefaultLocale>en-US</DefaultLocale>
  <DisplayName DefaultValue="XLTools.net Data Cleaning for Excel" />
  <Description DefaultValue=" Clean bulk data fast: remove extra spaces, change text case, convert text format to numbers, etc."/>
  <IconUrl DefaultValue="~remoteAppUrl/App/DataCleansing/Images/Logo32.png"></IconUrl>
  <SupportUrl DefaultValue="http://xltools.net/excel-apps/data-cleaning-app/"></SupportUrl>
  <Capabilities>
    <Capability Name="Workbook" />
  </Capabilities>
  <DefaultSettings>
    <SourceLocation DefaultValue="~remoteAppUrl/App/DataCleansing/Home.html" />
  </DefaultSettings>
  <Permissions>ReadWriteDocument</Permissions>
</OfficeApp>

Основное, что нужно отметить в этом файле:

  • Id – должен быть уникальным для каждого приложения;
  • Version – должна совпадать с версией, указываемой при публикации надстройки через Seller Dashboard (личный кабинет вендора/разработчика, через который осуществляется все управление надстройками, публикуемыми в Office Store);
  • IconUrl и SupportUrl – ссылки должны быть работающими и указывать на расположение картинки-логотипа и страницы с описанием функционала надстройки. В случае, если ссылки будут указаны неверно, манифест не пройдет проверку при публикации через Seller Dashboard;
  • Permissions – определяет уровень доступа надстройки к данным документа. Может принимать такие значения как Restricted, Read document, Read all document, Write document, Read write document;
  • SourceLocation – путь к «домашней» странице приложения на веб-сайте.

Веб-сайт состоит из минимального набора HTML, JavaScript и CSS файлов, необходимых для работы приложения, и по умолчанию предоставляет базовый UI, на основе которого мы можем строить UI для нового решения. Стоит отметить, что одним из требований к сайту является работа по HTTPS. Это означает, что в случае публикации сайта на собственных серверах или на собственном домене, Вам потребуется SSL сертификат. В случае, если Вы планируете использовать, к примеру, Azure Website, этой проблемы можно избежать, т.к. все сайты, развернутые на поддомене azurewebsites.net, по умолчанию доступны как по протоколу HTTP, так и протоколу HTTPS.

Для взаимодействия с данными Excel в JavaScript API предусмотрен стандартный набор методов. Приведу примеры использования лишь некоторых, из числа тех, которые мы использовали при разработке надстройки «XLTools.net Очистка данных»:

  • Добавление «привязки» к выбранному пользователем диапазону ячеек в Excel для дальнейшей работы с ними:

Office.context.document.bindings.addFromPromptAsync(Office.BindingType.Matrix, {
            id: "RangeToClean"
        }, function (asyncResult) {
            if (asyncResult.status == "failed") {
                    // Some specific code here
            }
            else {
                    // Some specific code here
            }
        });

  • Получение данных из диапазона ячеек с использованием ранее созданной «привязки»:

Office.select("bindings#RangeToClean", onBindingNotFound).getDataAsync(
            {},
            doDataCleaning
        );

  • Обновление данных в диапазоне ячеек с использованием ранее созданной «привязки»:

Office.select("bindings#RangeToClean").setDataAsync(range,function (asyncResult) {
            if (asyncResult.status == "failed") {
                    // Some specific code here
            }
            else {
                app.showNotification(UIText.ExecutedSuccessfully, '', 'success');
            }
        }).

Все методы JavaScript API хорошо документированы, их подробное описание можно посмотреть на сайте MSDN.

В зависимости от сценария, обработка данных может происходить как непосредственно на клиенте, т.е. в JavaScript-коде, так и на сервере. Для обработки данных на сервере можно добавить нужные сервисы прямо на сайт, к примеру, с использованием Web API. Общение клиента (надстройки) с веб-сервисами происходит так же, как мы привыкли это делать на любом другом сайте – при помощи AJAX-запросов. Единственное, что нужно учитывать – если Вы планируете использовать сторонние сервисы, расположенные на чужих доменах, то непременно столкнетесь с проблемой same-origin policy.

Публикация надстройки в Office Store

Для публикации надстройки в Office Store Вам необходимо зарегистрироваться на сайте Microsoft Seller Dashboard. После регистрации Вы получите доступ к личному кабинету, где сможете загрузить манифест Вашего приложения и заполнить всю необходимую информацию о нем. Исходя из личного опыта, могу сказать, что проверка приложения после отправки на утверждение занимает обычно от одного до трех рабочих дней. После проверки приложения сотрудниками Microsoft и его одобрения, оно становится доступно для скачивания миллионам пользователей по всему миру через Office Store:

Выводы

В заключение стоит сказать, что надстройки XLTools являются отличным примером того, как можно трансформировать существующие решения на базе технологий VBA/VSTO в кроссплатформенные решения для Office 365. В нашем случае, мы смогли перенести в Office Store добрую половину функций из Desktop-версии XLTools, реализовав шесть отдельных приложений.

Все они в настоящий момент доступны для скачивания через Office Store:

  • XLTools.net SQL запросы — выполнение SQL запросов к данным в таблицах Excel;
  • XLTools.net CSV Export for Excel — позволяет сохранить таблицу в Excel, как CSV файл с указанием нужного разделителя: запятая, точка с запятой или tab;
  • XLTools.net Очистка данных — очистка массива данных: удаление пробелов, изменение регистра текста, перевод текста в числа, т.д.;
  • XLTools.net Unpivot Table for Excel — помогает пользователям Excel трансформировать сложные двумерные таблицы в плоский вид;
  • XLTools.net Отчёты SendGrid — выгрузка отчетов о доставке из аккаунта SendGrid в Excel;
  • XLTools.net Columns Match — сравнение столбцов, поиск столбцов с одинаковыми данными, расчет процента соответствия данных в столбцах.

Так же хотелось бы отметить, что помимо привычных сценариев, с появлением Office Store и Office 365, у нас, как у разработчиков, появились новые возможности по разработке расширений с использованием Office 365 API, позволяющего получить доступ к данным таких сервисов как Mails, Calendars, SharePoint Online, OneDrive for Business и т.д. Кто знает, что мы сможем построить завтра с использованием этих возможностей. Время покажет!


Об авторе

Петр Ляпин -Технический директор ООО «ВейвПоинт»

Более 10 лет опыта внедрения проектов по автоматизации
бизнес-процессов. Работал со множеством российских и
зарубежных компаний. Основатель проекта XLTools.net.

Знаете ли вы, что Microsoft Office, включая Excel и Word, поддерживает надстройки ? Надстройки для Excel могут помочь вам быстрее справляться со своими задачами, поскольку вам никогда не придется выходить из рабочей книги Excel.

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

Поиск, установка и доступ к надстройкам

Microsoft Excel 2016 имеет удобный магазин, доступный как на Windows, так и на Mac. Открыв книгу Excel, выберите вкладку « Вставка » и нажмите « Сохранить» . Когда откроется Магазин надстроек Office, вы сможете просматривать по категориям или искать определенную надстройку. Вы также можете посетить Интернет-магазин Office и выбрать « Надстройки» в верхней части навигации.

Microsoft Office Store Excel Надстройки

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

Добавить Установить Excel Надстройки

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

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

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

10 экономящих время бизнес-надстроек

1. Электронная таблица123 Шаблон Vault

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

Электронная таблица надстроек Excel123

Выбрав любой из шаблонов, вы можете увидеть небольшой предварительный просмотр, типы файлов и ссылки на другие шаблоны в этой категории. Когда вы будете готовы, нажмите кнопку, и шаблон будет загружен с веб-сайта Spreadsheet123.

2. Галерея шаблонов Vertex42

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

Шаблоны надстроек Excel Vertex42

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

3. Excel Colorizer

Для быстрого и простого добавления цвета в электронные таблицы Excel Colorizer Addin работает хорошо и облегчает чтение ваших данных. Вы выбираете цвета и рисунок, а надстройка делает все остальное.

Excel надстройка Excel Colorizer

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

4. Sorc’d Добавить фрагменты соответствующего содержимого

Если вы хотите добавить интернет-контент в свою таблицу, надстройка от Sorc’d — это удобный инструмент. Вы можете выполнить поиск или просто выбрать из длинного списка категорий, включая рекламу, электронную коммерцию, розничную торговлю и путешествия.

Надстройка для Excel Sorcd Snippets

Найдя фрагмент, который вы хотите добавить, коснитесь ячейки в электронной таблице и щелкните значок плюса в сообщении. Надстройка также имеет расширения как для Chrome, так и для Firefox , а также функцию экспорта. Если вы решили экспортировать и сохранить контент, вы также можете выбрать категории и теги. Это потрясающая надстройка для включения справочного материала.

5. Keluro Web Analytics [больше не доступно]

Если добавление Google Analytics в ваш документ — это данные, которые вам нужны, то надстройка Keluro Web Analytics идеальна. Аутентифицируйте свою учетную запись Google Analytics из надстройки, выберите свойства, которые будут отображаться, если у вас их несколько, и вы настроены.

Надстройка Excel Keluro Web Analytics

Вы можете выбрать из различных измерений и метрик, чтобы получить точные данные, которые вы хотите Варианты включают пользователя, сеанс, источники трафика, AdWords, отслеживание страниц, аудиторию и многое другое, каждый из которых также имеет подкатегорию. Нет более простого способа использовать Google Analytics на вашем сайте, чем с Keluro.

6. Выставление счетов PayPal [больше не доступно]

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

Excel-надстройка PayPal выставление счетов

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

7. Таймер активности [больше не доступен]

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

Таймер активности надстроек Excel

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

8. Удобный калькулятор

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

Excel надстройка удобный калькулятор

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

9. Детектор узкого места

Для тех, кто создает, редактирует и поддерживает рабочие книги и электронные таблицы с огромными объемами данных, Bottleneck Detector действительно может помочь. Этот инструмент покажет вам, что замедляет работу вашей книги. После установки надстройки на ленте на вкладке « Главная » будет размещена кнопка, которую можно просто щелкнуть, чтобы открыть ее.

Встраиваемый в Excel детектор Bottlenec

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

10. QR4Office

Для добавления изящных QR-кодов в ваши электронные таблицы, QR4Office является отличным инструментом. Вы просто добавляете URL или текст, который хотите кодировать, а затем выбираете цвета для переднего плана и фона. Вы также можете настроить размер и увидеть хороший предварительный просмотр кода.

Надстройка Excel QR4Office

Если вы довольны QR-кодом, просто выберите ячейку в таблице и нажмите « Вставить» . QR-код появится сразу, и вы также можете скопировать или сохранить его вручную, если хотите. Это удобный инструмент, если ваш бизнес использует QR-коды.

5 удобных специфичных для компании надстроек

Для тех, кто использует определенные инструменты и компании, такие как Salesforce или SurveyMonkey, вот несколько дополнительных надстроек, которые могут оказаться полезными.

  1. SmartClient для Salesforce
  2. Verso Ticket Management для Excel

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

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

Удаление надстройки Excel

Какие ваши любимые надстройки Excel?

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

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

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

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

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

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

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

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

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

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

Открываем Excel с пустой книгой и сохраняем ее в формате надстройки с
помощью команды Файл — Сохранить как, например,ExcelPlus), указав тип файла Надстройка 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:
  6. Сохранить файл надстройки и перезапустите Excel.

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

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

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

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

Ribbon XML Editor

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

    label — текст на кнопке;

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

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

  7. Проверить правильность сделанного с помощью кнопки с зеленой галочкой
    сверху на панели инструментов. Рядом с ней нажмите на кнопку с дискетой для
    сохранения изменений:
  8. Закрыть Ribbon XML Editor
  9. Открыть Excel, зайти в редактор VBA по Alt+F11 и добавить к нашему
    макросу процедуру вызова FindCyrStart, для запуска
    основного макросы поиска кириллицы.
  10. Сохранить изменения в редакторе VBA и в Excel проверить результат:


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

Яндекс.Метрика

Хитрости »

11 Август 2014              95569 просмотров


Как создать свою надстройку?

В этой статье:

  • Что такое надстройка
  • Как создать надстройку
  • Создание собственного меню надстройки для версий Excel 2003
  • Создание собственного меню надстройки для версий 2007 и выше

 
ЧТО ТАКОЕ НАДСТРОЙКА
Для начала разберемся — что такое надстройка и для чего она нужна.

Надстройка

— это файл Excel, имеющий расширение .xla или .xlam(только для 2007 и выше), который по умолчанию открывается как скрытая рабочая книга и может быть подключен к приложению для автоматического запуска вместе с запуском самого приложения. Книга надстройки открывается, но в списке видимых открытых файлов не значится, поэтому нет смысла её там искать. Отобразить такую книгу возможно только кодом.

Есть также и другие виды надстроек — надстройки COM и XLL-надстройки. Но о них я не буду рассказывать, т.к. они разрабатываются не в VBA, а в иных средах программирования

Как правило надстройки используют для распространения программного кода, который будет доступен для любой книги Excel. Т.к. надстройка запускается вместе с приложением — очень удобно хранить в ней коды. Можно создать меню для запуска процедур(об этом ниже) и функции пользователя — созданные в надстройке они доступны в любой открытой книге Excel без ссылок на другую книгу, что несомненно очень удобно. Функции пользователя, прописанные в надстройке для Excel 2007 и выше так же доступны по вводимым начальным символам:
Подбор по имени функции
и после нажатия TAB имя функции будет вставлено в ячейку.
Кроме модулей с кодами надстройки могут содержать и таблицы данных и диаграммы и все, что можно хранить в обычной книге. Но учитывая то, что книга скрыта — особого смысла в этих данных нет, если только не предполагается использовать эти данные в качестве шаблонов для создания определенных отчетов из надстройки. Часто на листах надстроек хранят константы для работы кода, если по каким-либо причинам не хочется использовать константы внутри кода VBA. Данные в ячейках файла надстройки можно изменять во время работы, но я не рекомендую сохранять открытый и исполняемый в данный момент файл надстройки, во избежание конфликтов.

 
КАК СОЗДАТЬ НАДСТРОЙКУ
Создать надстройку просто: из любого файла Excel идете в меню:

  • Excel 2010 и новее: Файл (File)Сохранить как (Save As)-Из выпадающего списка «Тип файла» выбрать Надстройка Excel(.xlam) (Excel Add-In(.xlam)) или Надстройка Excel 97-2003(.xla) (Excel 97-2003 Add-In(.xla)).
  • Excel 2007: Кнопка ОфисСохранить как (Save As)-Из выпадающего списка «Тип файла» выбрать Надстройка Excel(.xlam) (Excel Add-In(.xlam)) или Надстройка Excel 97-2003(.xla) (Excel 97-2003 Add-In(.xla)).
  • Excel 2003: МенюСохранить как-Из выпадающего списка «Тип файла» выбрать «Надстройка Excel(.xla)«.
  • Сохранить как

Однако рекомендую не спешить с сохранением файла как надстройки. Сначала следует весь функционал, закладываемый в надстройку, потестировать, отладить и удостовериться, что все работает как предполагалось. Т.к. после сохранения файла как надстройки и открытия надстройки в Excel — закрыть её можно будет только закрыв Excel полностью(конечно, можно еще воспользоваться кодом вроде Workbooks("MyAddin.xla").Close, но это не очень удобно в разработке).
Если все же сохранили файл как надстройку, но хотите что-то изменить в книге(удалить лишние листы, изменить информацию на листах(часто так делается для хранения настроек) и т.п.) — то надо в редакторе VBA найти проект надстройки, перейти в свойства модуля ЭтаКнига(или ThisWorkbook) и выставить IsAddin = False. Книга отобразиться. Далее надо будет вернуть свойство IsAddin в True и сохранить проект
Так же следует заранее выбрать формат надстройки — для версий Excel 97-2003(.xla) и или только от 2007(.xlam) и выше. Надстройки .xla работают во всех версиях Excel, в том числе и в 2007 и выше. Это, пожалуй, единственное их преимущество перед форматом .xlam. Т.к. при этом все меню, которые будут созданы для вызова кодов, в версиях от 2007 и выше будут располагаться на вкладке «Надстройки» и будут иметь минимум настроек: нет возможности изменить размер значка; разбить на группы; сделать красивые подсказки; расположить в два ряда и т.п.
Для формата .xlam доступен более широкий ассортимент: они могут так же создать меню на вкладке «Надстройки», а могут и создавать собственные вкладки(через XML-схемы), команды на которых можно расположить в соответствии со всеми красивостями и достоинствами оформления, которое можно наблюдать в Ribbon-панелях Excel 2007 и выше.
Дальше я как раз более подробно расскажу про оба метода создания меню.

Я покажу создание надстроек на примере простого кода, который будет записывать в активную ячейку текущего листа число 10, закрасит ячейку красным цветом и установит для ячейки границы.
Код этой процедуры:

'---------------------------------------------------------------------------------------
' Procedure : Test
' DateTime  : 11.08.2014 12:08
' Author    : The_Prist(Щербаков Дмитрий)
'             http://www.excel-vba.ru
' Purpose   : Записываем в активную ячейку число 10
'             красим в красный цвет заливку
'             устанавливаем границы
'---------------------------------------------------------------------------------------
Sub Test()
    With ActiveCell
        .Value = 10
        .Interior.Color = vbRed
        .Borders.Color = vbBlack
    End With
End Sub

Важно: Код помещается в стандартный модуль книги, из которой хотите сделать надстройку.

 
СОЗДАНИЕ СОБСТВЕННОГО МЕНЮ НАДСТРОЙКИ ДЛЯ ВЕРСИЙ EXCEL 2003

Примерный вид данного меню в Excel 2003:
Панель в Excel 2003
Примерный вид меню в Excel 2007 и выше:
Меню в Excel 2007 и выше

Собственно, меню, совместимое со всеми версиями Excel делается исключительно на уровне VBA следующим кодом:

'---------------------------------------------------------------------------------------
' Module    : ЭтаКнига
' DateTime  : 11.08.2014 12:13
' Author    : The_Prist(Щербаков Дмитрий)
'             http://www.excel-vba.ru
' Purpose   : 
'---------------------------------------------------------------------------------------
Option Explicit
'константа уровня модуля - имя меню
'Обязательно задать, чтобы можно было идентифицировать
Const sMenuBarName As String = "Test Addin www.Excel-VBA.ru"
 
'---------------------------------------------------------------------------------------
' Procedure : Workbook_BeforeClose
' Purpose   : Процедура выполняется перед закрытием книги
'             удаляем созданное меню после закрытия надстройки
'---------------------------------------------------------------------------------------
Private Sub Workbook_BeforeClose(Cancel As Boolean)
    On Error Resume Next ' обработчик ошибки нужен, если меню такого нет
    'удаляем меню, для исключения дублирования меню при повторном запуске
    Application.CommandBars(sMenuBarName).Delete
End Sub
 
'---------------------------------------------------------------------------------------
' Procedure : Workbook_Open
' DateTime  : 11.08.2014 12:39
' Author    : The_Prist(Щербаков Дмитрий)
'             http://www.excel-vba.ru
' Purpose   : Процедура создания меню
'             как отдельная панель для 2003
'             на вкладке "Надстройки" для 2007 и выше
'---------------------------------------------------------------------------------------
Private Sub Workbook_Open()
    On Error Resume Next ' обработчик ошибки нужен, если меню такого нет
    'удаляем меню, для исключения дублирования меню при повторном запуске
    Application.CommandBars(sMenuBarName).Delete
    On Error GoTo 0
    'добавляем меню
    With Application.CommandBars.Add(sMenuBarName, temporary:=True)
        'добавляем новую кнопку
        With .Controls.Add(Type:=1) 'добавляем обычную кнопку на панель
            'отображаемый текст кнопки
            .Caption = "ИЗМЕНИТЬ СВОЙСТВА АКТИВНОЙ ЯЧЕЙКИ"
            'стиль кнопки
            'доступные стили:
            '1 - только значок(16x16)
            '2 - только текст
            '3 - картинка и текст
            .Style = 3
            'назначаем картинку из набора офиса
            'посмотреть доступные можно: http://www.excel-vba.ru/general/moi-nadstrojki/panel-ikonok-faceid/
            .FaceId = 2
            'имя процедуры, которая будет выполнена при нажатии кнопки
            .OnAction = "Test"
        End With
        'делаем меню видимым
        .Visible = True
    End With
End Sub

Основные моменты я постарался расписать в комментариях, но на некоторых все же хочу заострить внимание.

  • Свойство Type
    .Controls.Add(Type:=1)
    Наверное, самое важное свойство. Оно отвечает за тип элемента меню. Доступно всего пять типов:

    • 1Button(обычная кнопка)
    • 2TextBox(текстовое поле с возможностью записи в него значений и считывания значений из него)
    • 3List(выпадающий список с заранее заданным списком значений)
    • 4ComboBox(выпадающий список с возможностью записи в поле произвольного значения)
    • 10PopupMenu(выпадающее меню с возможностью добавления новых элементов)
  • Иногда возникает вопрос: как сделать на такой панели ToggleButton? Т.е. кнопку, которая при нажатии остается в нажатом состоянии, а при повторном нажатии — в отжатом(т.е. в обычном). В данном случае это возможно исключительно через «финты» вызываемой по нажатию кнопки процедуры:

    Sub Add_CmBar()
        With Application.CommandBars.Add("Test ToggleButton", temporary:=True)
            With .Controls.Add(Type:=1)
                .Caption = "ToggleButton"
                .Style = 2
                .OnAction = "Emulate_Toggle"
            End With
            .Visible = True
        End With
    End Sub
    'процедура, которая выполняется при нажатии кнопки "ToggleButton". Меняет видимое состояние кнопки.
    Sub Emulate_Toggle()
        Dim bt As CommandBarButton
        Set bt = Application.CommandBars.ActionControl
        'проверяем текущее состояние кнопки. 
        'если нажата - отжимаем, если отжата - нажимаем
        If bt.State = msoButtonDown Then
            bt.State = msoButtonUp
        Else
            bt.State = msoButtonDown
        End If
    End Sub

    Еще одна проблема при разработке таких панелей: невозможность явно указать кнопку в стиле Caption(т.е. неактивную к нажатию кнопку). Это тоже можно сделать при помощи обычной Button, только в свойствах кнопки надо свойство Enabled установить в False:
    .Enabled = False
    при этом обязательно необходимо указать Style 2 и назначить Caption.

  • Свойство Style
    .Style = 3
    данное свойство управляет видом кнопки. Доступные стили:

    • 1 — только значок(16×16). Необходимо указывать свойство FaceID
    • 2 — только текст. Свойство FaceId может быть указано, но никак не влияет на внешний вид кнопки
    • 3 — картинка и текст. Обязательно указывать хотя бы одно из свойств: Caption или FaceID

    Если хотите отобразить просто значок или значок вместе с текстом — то столкнетесь с проблемой выбора значка. Поэтому я давно создал надстройку, которая позволяет просмотреть все ID всех доступных значков офиса: Панель иконок FaceID.
    Так же можно и свои значки создавать, однако я не буду здесь затрагивать эту тему, т.к. получится запутанно и обширно. Если кратко: необходимо создать свой значок размером 16×16, с расширением .gif. Затем создать копию иконки и предполагаемые непрозрачные области закрасить черным, а прозрачные — белым. Эту копию необходимо задать для свойства .Mask

  • Свойство OnAction:
    .OnAction = «Test»
    Данная строка отвечает за назначение процедуры, которая будет выполнена после нажатия на кнопку(в случае с ComboBox и TextBox — изменение значения. Вызван код будет после выхода из режима редактирования элемента). Test — это имя процедуры. Её я привел выше и именно она будет выполнена при нажатии на эту кнопку.

Положение CommandBar на панели
Так же у объекта CommandBar есть такие свойства как .Left(положение относительно левого края окна Excel) и .Top(положение относительно верхнего края окна Excel), которые задают положение строки меню на панели. Но они мало актуальны для версий 2007 и выше, т.к. там для таких панелей отведена отдельная вкладка и все они помещаются на ней в том порядке, в котором были на неё добавлены. По умолчанию, если данные свойства не заданы — в 2003 Excel панель создается плавающая и пользователь может переместить её в любое удобное для него место. Если же они указаны, то панель будет расположена в заданных координатах относительно окна Excel.

Во вложении ниже пример надстройки с открытым кодом. Но в примере код расширен — там я привел коды с использованием всех типов элементов: и кнопки, и эмуляция ToggleButton, и списки, и текстбокс и выпадающее меню с доп.кнопками. В кодах есть комментарии, поэтому при желании разобраться не составит труда.


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

  1. надо указывать конкретное имя меню, в которое добавляем некую кнопку. Для контекстного меню ячеек это «Cell»:
    Application.CommandBars(«Cell»)
  2. лучше указывать положение элемента относительно уже существующих в меню. Делает это при помощи указания параметров before или after:
    Application.CommandBars(«Cell»).Controls.Add(Type:=1, before:=4)

При этом добавить можно как собственные кнопки, так и уже существующие. Для примера добавим одной кнопкой дубль нашей команды с лены «ИЗМЕНИТЬ СВОЙСТВА АТИВНОЙ ЯЧЕЙКИ», а второй — вставку в ячейку только значений(встроенная команда — подробнее в статье: Как удалить в ячейке формулу, оставив значения?):

    '=========================================================
    '
    '  ДОБАВЛЯЕМ СВОЙ ПУНКТ В МЕНЮ ПРАВОЙ КНОПКИ МЫШИ
    '
    With Application.CommandBars("Cell")
        'дублируем кнопку "ИЗМЕНИТЬ СВОЙСТВА АТИВНОЙ ЯЧЕЙКИ" с панели
        'добавляем перед 4-м элементом
        With .Controls.Add(Type:=1, before:=4)
            .Caption = "ИЗМЕНИТЬ СВОЙСТВА АТИВНОЙ ЯЧЕЙКИ"
            .Style = 3
            .FaceId = 2
            .OnAction = "Test"
        End With
        'добавляем кнопку встроенной в Excel команды "Вставить значения"
        'ищем команду "Вставить значения" по её ID в контекстном меню
        Set cbb = .FindControl(ID:=370)
        'удаляем команду из меню, если она была уже добавлена ранее
        If Not cbb Is Nothing Then
            cbb.Delete
        End If
        'добавляем перед 5-м элементом(после наше собственной команды)
        .Controls.Add ID:=370, before:=5
    End With

Скачать пример:

  Надстройка для Excel 97-2003 и выше.zip (22,6 KiB, 3 080 скачиваний)


 
СОЗДАНИЕ СОБСТВЕННОГО МЕНЮ НАДСТРОЙКИ ДЛЯ ВЕРСИЙ EXCEL 2007
Как я уже писал — для Excel 2007 и выше подходит описанный выше метод создания собственного меню для ранних версий. Однако меню в данном случае помещается исключительно на вкладку «Надстройки» и имеет довольно убогий вид (как можно лицезреть выше) в сравнении с общим Ribbon-интерфейсом других панелей. Чтобы посмотреть как это выглядит можете просто скачать файл выше и запустить его. Появится вкладка «Надстройки» с одной кнопкой.

Однако учитывая появившуюся в 2007 версии офиса возможность кастомизировать ленту Ribbon через язык XML, гораздо практичнее(особенно для разработчиков) создавать собственную панель с отдельным именем, на которой можно разместить красиво команды, добавить свои собственные значки для команд без особых усилий.

Примерно так можно все это оформить:
Меню в Excel 2007 через XML

Чтобы добавить свою панель необходимо изменить XML-схему для надстройки, которая присутствует в любом файле формата 2007. Есть несколько методов(я опишу лишь два).

Первый метод

, он же совсем неудобный и требует навыков работы с XML

  1. Изменить расширение файла с .xlam на .rar или .zip и открыть любым архиватором.
    Если не отображается расширение:
    Панель управленияСвойства папки(для Win 7 — Параметры папок)- вкладка Вид— Снять галочку с «Скрывать расширение для зарегистрированных типов файлов»
  2. Добавить в архив папку «customUI», папку «_rels» и папку «images»
  3. Создать файл «customUI.xml», который лично я бы назвал основным — в нем необходимо впоследствии прописать все панели и команды по законам языка XML. После чего данный файл необходимо поместить в папку «customUI»
  4. В папке «images» будут храниться все значки, которые будут расположены на панели
  5. Папка «_rels» должна внутри содержать файл «customUI.xml.rels», в котором перечисляются связи картинок с командами и панелями. Проще говоря — схема взаимосвязей ресурсов

Но все это очень муторно и необходимо знать язык XML. Уверен, большая часть читающих статью уже 100500 раз нахмурили брови и пару раз перечитали, надеясь понять о чем речь. Поэтому не будем дальше разбирать этот метод и перейдем к следующему.

 
Второй метод куда практичнее — использовать специальные программы для работы с Ribbon итерфейсом. Такие как Office Ribbon Editor, RibbonXMLEditor, OpenXML package editor и им подобные. Я сам использую для этих целей надстройку Максима Новикова — RibbonXMLEditor, последнюю версию которой можно скачать по адресу: http://novikovmaxim.narod.ru/index.htm?http://novikovmaxim.narod.ru/products/ribbon/ribbon.htm. На том же сайте можно найти примеры работы с Ribbon-панелью офиса и более подробно почитать про создание своих панелей. Я бы даже рекомендовал это сделать, если планируете создавать подобные файлы. Сама же программа RibbonXMLEditor бесплатна и не требует установки. Но функционал весьма достойный, а использование достаточно простое. Я не буду заострять внимание на всех нюансах работы с ней — все это можно найти на сайте её создателя(что я лично категорично рекомендую). Опишу лишь основное, что может потребоваться.
Для начала работы и создания своего меню необходимо открыть программу RibbonXMLEditor и выбрать в ней файл, в который хотите внедрить меню. Это должен быть файл формата .xlsm,.xlam или .xlsb. Т.к. мы создаем надстройку — наш формат .xlam.
На рисунке отмечены цифрами шаги, расписанные ниже:
RXE
1. Добавляете ribbon (нажатием кнопки на элементе)
2. Далее tabs и tab(так же автоматом добавится элемент groupe) — выделяете строку и внутрь кавычек для id вписываете groupe_1, а для label вписываете имя вкладки — Свойства ячейки.
3. Уже после этого внутрь groupe добавляете button и задаете ей id — change_cell. Должен получится такой код:

<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui">
	<ribbon startFromScratch="false">
		<tabs>
			<tab id="excel-vba" label="Test excel-vba.ru">
				<group id="groupe_1" label="Свойства ячейки">
					<button id="change_cell" />
				</group>
			</tab>
		</tabs>
	</ribbon>
</customUI>

Id каждого элемента должно быть уникальным и предпочтительнее указывать его исключительно на латинице(англ.алфавит), т.к. кириллица распознается с трудом и есть шанс получить ошибку.
Теперь продолжаем добавлять свойства для button:
4. для начала подгружаем картинку через соответствующую кнопку.
5. После этого она будет в выпадающем списке правее.
6. Ставим курсор после «change_cell» и нажимаем кнопку вставки тега изображения. Вставляется тег и название. Теперь у нашей кнопки есть картинка.
7. При помощи выпадающего меню параметров выбираем label и вставляем данный тег кнопкой, расположенной правее выпадающего списка. Курсор автоматически будет помещен внутрь кавычек. Вписываем текст — Изменить свойства ячейки.
8. При помощи выпадающего списка функций обратного вызова выбираем onAction и так же вставляем. Вписываем туда имя вызываемой процедуры — CallTest.
В результате должно получиться:

<?xml version="1.0" standalone="yes"?>
<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui">
	<ribbon startFromScratch="false">
		<tabs>
			<tab id="excel-vba" label="Test excel-vba.ru">
				<group id="groupe_1" label="Свойства ячейки">
					<button id="change_cell" image="table_edit" label="Изменить свойства ячейки" onAction="CallTest" />
				</group>
			</tab>
		</tabs>
	</ribbon>
</customUI>

Для отладки схемы через RibbonXMLEditor можно использовать кнопку отладки(зеленый треугольник) или сочетание клавиш F9. Для проверки корректности схемы — зеленая галочка. Жмем на неё и если в схеме будут ошибки — они сразу будут найдены и показаны в сообщении, с указанием номера строки и столбца, в которых ошибка.

На этом, казалось бы, все. Но нет. Просто так, сама по себе XML-схема не вызовет процедуру — необходимо создать функции обратного вызова. Вот здесь у RibbonXMLEditor есть еще одна отличная функция — генерация модуля обратных вызовов — 9. Нажимаем на кнопку — получаем готовые функции. Как правило верхние две строки не нужны — нам нужны лишь сами функции:

Sub CallTest(control As IRibbonControl)
 
End Sub

Копируем. Сохраняем схему нажатием дискеты в RibbonXMLEditor и закрываем программу.
Теперь открываем наш файл и вставляем скопированный текст функции. В эту функцию прописываем вызов нашей, уже созданной ранее процедуры: Test

Sub CallTest(control As IRibbonControl)
    Call Test
End Sub

В принципе, можно и прямо в эту процедуру прописать все действия из процедуры Test.
Сохраняем.
Открываем наш файл — видим, что новая вкладка «Test excel-vba.ru» появилась, кнопка на ней есть. По нажатии на кнопку выделенная ячейка окрашивается в красный цвет, в ней прописывается значение 10 и создаются границы.

 
Так же можно вставлять на свою вкладку встроенные команды. Для этого в button используется не id, а idMso. Эти команды не нуждаются в обработке обратных вызовов, т.к. при их использовании происходит вызов встроенных функций — кнопки как бы просто дублируются на нашу вкладку со всеми их возможностями. Например, чтобы добавить на свою вкладку стандартную кнопку перехода в VisualBasic надо добавить кнопку с idMso VisualBasic:

<button idMso="VisualBasic" />

Сам код при этом будет выглядеть так:

<?xml version="1.0" standalone="yes"?>
<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui">
	<ribbon startFromScratch="false">
		<tabs>
			<tab id="excel-vba" label="Test excel-vba.ru">
				<group id="groupe_1" label="Свойства ячейки">
					<button id="change_cell" image="table_edit" label="Изменить свойства ячейки" onAction="CallTest" />
                                        <button idMso="VisualBasic" />
				</group>
			</tab>
		</tabs>
	</ribbon>
</customUI>

Естественно, на создании одних кнопок функционал лент Ribbon не ограничивается. Доступны почти все элементы(вып.меню, галереи, большие иконки(32х32) и т.д.), которые есть в стандартных вкладках. Если чуть потренироваться и поэкспериментировать с приложением RibbonXMLEditor — то вскоре вы сможете быстро и легко создавать красивые и функциональные приложения. Как пример таких приложений можете посмотреть описание к моей надстройке MulTEx.


Так же как и в случае с надстройками для 2003 Excel, здесь можно создавать кнопки в контекстном меню(правая кнопка мыши), но и тут не обошлось без нюансов:

  1. изменение данного меню доступно только начиная с версии Excel 2010. Для 2007 версии придется использовать старые методы — те же, что и для 2003(т.е. внедрение отдельного кода на Workbook_Open надстройки, как в примере выше для надстройки 2003)
  2. в надстройке Ribbon XML Editor я не нашел встроенного инструмента для вставки кодов обработки меню правой кнопкой мыши. Похожий по «звучанию» contextualTabs не совсем то, что нужно(а если быть точнее — совсем не то). contextualTabs — это динамические вкладки, которые появляются после основных вкладок при работе с определенными объектами. Например, с умными таблицами. Когда выделяем умную таблицу или любую ячейку в ней, то появляется группа динамических вкладок «Работа с таблицами». Вот в неё и вносятся изменения при помощи contextualTabs

Поэтому прописывать «добавки» в меню по правой кнопке мыши придется самостоятельно. Код вставки уже имеющегося у нас кода приведен ниже:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
	<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui">
	<ribbon startFromScratch="false">
		<tabs>
			<tab id="excel-vba" label="Test excel-vba.ru">
				<group id="groupe_1" label="Свойства ячейки">
					<button id="change_cell" image="table_edit" label="Изменить свойства ячейки" onAction="CallTest" />
                                        <button idMso="VisualBasic" />
				</group>
			</tab>
		</tabs>
	</ribbon>
 
	<contextMenus>
		<contextMenu idMso="ContextMenuCell">
			<button id="change_cell_context" 
					image="table_edit" 
					label="Изменить свойства ячейки" 
					onAction="CallTest" 
					insertBeforeMso="Cut" />
		</contextMenu>
	</contextMenus>
</customUI>

добавлять его надо исключительно на вкладке 2010, 2013(customUI14.xml) внизу редактора Ribbon XML Editor. Обращаю внимание, что код создания собственной вкладки на панели дублируется: он должен присутствовать и в 2007(customUI.xml) и в 2010, 2013(customUI14.xml). Это необходимо сделать, чтобы в 2007 Excel была только вкладка, а начиная с 2010 — еще и контекстное меню(схемы customUI.xml и customUI14.xml обрабатываются отдельно друг от друга в зависимости от того, в какой версии открыт файл). При этом в 2007 это никаких ошибок не вызовет.
Остальные правила для создания элементов меню точно такие же, как и для вкладок: можно добавлять как собственные команды, так и встроенные(при помощи idMso).
Я сам предпочитаю контекстное меню дополнять исключительно кодом VBA, т.к. для 2007 его в любом случае придется писать.

Скачать пример надстройки для 2007 Excel

  Надстройка для Excel 2007 и выше.zip (14,6 KiB, 3 402 скачиваний)

В примере я не стал делать много кнопок и их обработку — слишком уж много различных элементов там доступны и для раскрытия всего функционала этой статьи не хватит. Да и в интернете уже полно статей с разбором работы с XML-интерфейсом новых версий Excel. Основной упор сделан на создание основной вкладки и контекстного меню, т.к. техника создания контекстного меню уж очень не очевидна из надстройка Ribbon XML Editor.

Осталось дело за малым — научиться эти надстройки подключать. Но об этом я уже писал в статье Подключение/отключение надстроек


Статья помогла? Поделись ссылкой с друзьями!

  Плейлист   Видеоуроки


Поиск по меткам



Access
apple watch
Multex
Power Query и Power BI
VBA управление кодами
Бесплатные надстройки
Дата и время
Записки
ИП
Надстройки
Печать
Политика Конфиденциальности
Почта
Программы
Работа с приложениями
Разработка приложений
Росстат
Тренинги и вебинары
Финансовые
Форматирование
Функции Excel
акции MulTEx
ссылки
статистика

Подробности
Создано 27 Март 2011
Содержание
Персональная книга макросов
XLA/XLAM
XLS/XLA как ссылка
XLL
COM DLL (Office Developer Tools – ODT)
Установка COM DLL:
Настройка ленты Office 2007:
Вызов процедур COM-DLL из VBA
COM DLL (Visual Studio Tools for Office – VSTO)

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

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

Описание: хранение общих функций и процедур для персонального использования
Требования: нет
Достоинства: возможность хранения пользовательских функций для работы с данными (UDF)
Недостатки: сложности с тиражированием

Для общих программ и макросов можно использовать, так называемую, личную книгу макросов – по умолчанию это файл PERSONAL.XLS (в Excel 2007-2010 PERSONAL.XLSB). Файл с данным именем создается с при записи макроса средствами Excel. Этот файл будет автоматически загружаться каждый раз при запуске Excel. Местонахождение данного файла в каталоге Windows: ПОЛЬЗОВАТЕЛЬApplication DataMicrosoftExcelXLSTART. На самом деле Excel будет запускать автоматически все файлы из данного каталога, независимо от имен файлов.

В принципе, личные книги макросов можно считать надстройками Excel. В файле PERSONAL.XLS (или любом другом из стартового каталога) можно хранить общие функции и макросы, автоматизирующие часто повторяемые операции. Для выполнения каких-либо операций при старте Excel можно использовать событие Worbook_Open этого файла, либо процедуру Auto_Open в модуле кода.

Как вносить исправления в PERSONAL.XLSB

XLA/XLAM

Описание: стандартная надстройка
Требования: нет
Достоинства: возможность создания тиражируемых продуктов
Недостатки: слабая защита исходного кода программ.

Надстройки с расширением xla (в версии 2007-2010 xlam) представляют собой стандартный xls-файл, который может быть открыт как невидимая в списке открытых файлов рабочая книга.

Файл надстройки обычно содержит программный код, который управляет какими-либо оперциями активной рабочей книги Excel. Теоретически, кроме модулей кода, в состав xla-файла могут быть таблицы и даже листы диаграмм, но надо понимать, что особого смысла в этих данных нет, так как нет возможности отобразить эти данные на экране стандартными средствами. На рабочих листах надстройки можно хранить, например, константы для работы кода, если по каким-либо соображениям не хочется использовать константы VBA. Данные в ячейках файла надстройки можно даже изменять во время работы, но сохранять открытый и исполняемый в данный момент файл xla в общем случае недопустимо.

Для доступа к данным рабочей книги надстройки используется объект ThisWorkbook, а для работы с активной рабочей книгой – объект ActiveWorkbook.

В надстройках имеется возможность хранить пользовательские функции для работы с данными рабочих листов (user defined function — UDF). Только надо учитывать, что в этом случае рабочий файл сохраняет ссылку (связь) на файл надстройки по абсолютному пути. Эта особенность может затруднить распространение программных продуктов.

Отладку надстроек лучше производить через xls-файл (не забывая различия между ThisWorkbook и ActiveWorkbook), а впоследствии сохранять этот файл как xla. Нектороые сложности могут в этом случае возникнуть при использовании событий Workbook_AddinInstall и Workbook_AddinUninstall, так как их невозможно эмулировать в простом файле рабочей книги. К счастью, эти события требуются крайне редко; честно говоря, мы не знаем ни одного примера их полезного использования на практике.

Подключать готовую XLA-надстройку можно через соответствующий диалог (Excel 2000-2003 Сервис Надстройки, Excel 2007 Кнопка Office Параметры Excel Надстройки Перейти).

Подключаемые надстройки прописываются в реестре Windows по адресу HKEY_CURRENT_USER Software Microsoft Office НОМЕР_ВЕРСИИ.0 Excel Options в строковых параметрах с префиксом OPEN и порядковым номером надстройки (причем первая по порядку надстройка номера не имеет). Управляя этим ключом реестра, можно подключить / отключить надстройку через инсталляционные программы. Это, кстати, еще одна причина никогда не использовать событие Workbook_AddinInstall – очевидно, что оно не будет вызвано при изменении ключей реестра внешними программами.

Имя и описание надстройки можно задать в свойствах файла перед его сохранением в форматие xla/xlam (Excel 2000-2003 Файл Свойства, Excel 2007 Кнопка Office Подготовить Свойства).

Важным преимуществом надстройки XLA/XLAM вместо использования кода внутри рабочих файлов является возможность повторного использования кода VBA. Кроме того, установленные надстройки не спрашивают о наличии макросов при запуске Excel на любом уровне безопасности.

Интересная, но скорее всего бесполезная в работе информация. Надстройки XLA в Excel версии 5.0-8.0 (95-97) хранятся в скомпилированном виде. В связи с этим, там просто нет исходного текста программ в открытом или зашифрованном виде. Эта особенность приводит к невозможности декомпиляции или вскрытию кода специальными средствами. К сожалению, в последующих версиях Excel надстройки хранятся в нескомпилированном виде и легко преобразуются в доступный для изменения файл, даже будучи защищенными паролями. Microsoft рекомендует использовать для разработчиков возможности COM-DLL и средства VSTO (см. далее).

В качестве примера XLA-надстройки, можно ознакомиться с исходным кодом надстройки ExcelFin в разделе Программы.

XLS/XLA как ссылка

Описание: библиотека кода VBA
Требования: нет
Достоинства: не требует компиляции во внешних программных продуктах
Недостатки: сложность распространения из-за абсолютных ссылок на файлы

Если вы создали набор общеупотребительных функций, но не имеете возможность скомпилировать библиотеку в виде XLL или DLL-файла (см.ниже), то можно подключить любой VBA-код XLS-файла в качестве ссылки в проекте. Делается это в окне редактора кода через меню Tools References.

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

При использовании общего кода XLA-надстроек и ссылок к XLS-файлам важную роль играет определение методов и свойств класса Friend. Эти методы и свойства видны внутри проекта, но не во внешнем файле, использующем ссылку. Внутри одного файла определение Friend соответствует Public.

XLL

Описание: библиотека функций рабочего листа
Требования: компилятор C/C++ и API-библиотека
Достоинства: создание наиболее производительных функций с полным встраиванием в интерфейс Excel
Недостатки: нет

Наиболее производительные пользовательские функций для работы с таблицами реализуются при помощи XLL-надстроек.

XLL-надстройка представляет собой скомпилированный на C/C++ файл динамической библиотеки Windows, специально предназначенной для использования в Excel. Разработчикам предоставляется специальная библиотека C API (Excel XLL SDK). Использование языка C с возможностью управления памятью позволяют разработать самые мощные и производительные функции для работы с данными Excel. Сравните производительность встроенных функций и UDF, разработанных на VBA.

Мы не имеем практического опыта разработки XLL-надстроек, поэтому желающих разрабатывать библиотеки такого типа отсылаем к MSDN.

Microsoft Excel 2010 XLL Software Development Kit

Имеется не очень стандартный способ регистрации UDF-функций для вывода пользовательской функции на VBA в интерфейсе Excel через Application.ExecuteExcel4Macro(“REGISTER(…)”) . Метод проверен и работает. Но не дает никаких преимуществ в производительности функций, поэтому в практической работе его ценность сомнительна. Подробнее читайте:

Регистрация UDF

COM DLL (Office Developer Tools – ODT)

Описание: полнофункциональная надстройка Excel
Требования: ODE 97 или ODT XP
Достоинства: возможность создания интерфейса любой сложности; полностью закрытый исходный код.
Недостатки: невозможно создание пользовательских функций для работы с данными (UDF)

Версии Excel 97 (8.0), 2000 (9.0) и XP (10.0) имели специальный вариант пакетов для разработчика под названием Developer Edition (ODE) или Developer Tools (ODT). В версиях ODE 9.0 и ODT 10.0 имелась возможность создавать библиотеки формата ActiveX DLL непосредственно при помощи пакета Office без использования внешних компиляторов. К сожалению, в последующих версиях Excel эта возможность была удалена, Microsoft отсылает разработчиков к технологии Visual Studio Tools for Office (VSTO) с использованием .NET Framework.

Главной особенность Excel ODT является наличие возможности создания проекта VBA независимого от xls-файла, с возможностью последующей компиляции данного проекта в файл формата DLL (ActiveX DLL).

Исходный VBA-проект содержит специальный дизайнер с методами обработки событий Excel. В проекте, кроме этого, доступны для создания обычные модули кода, классы и формы. Причем формы могут быть открыты немодально. Надстройки данного типа могут быть подключены к различным версиям Excel одновременно. Файл DLL, скомпилированный с помощью ODE/ODT не требует никаких дополнительных исполняемых модулей для своей работы, кроме, собственно говоря, Excel.

Здесь важное замечание, что, даже если вас заинтересовали возможности ODE/ODT, вам вряд ли удастся приобрести лицензионные версии этих продуктов – Microsoft с 2003го года прекратил их распространение. Вообще же вероятно, что в России, официальным способом было приобретено совсем небольшое количество копий пакетов для разработчиков, поэтому искать пиратскую версию этих продуктов тоже особого смысла не имеет.

Microsoft Office 2000 Developer Edition
Microsoft Office XP Developer

Настройка ленты Office 2007:

В отличие от панелей инструментов, новый пользовательский интерфейс Excel 2007 в виде ленты (ribbons) не имеет встроенных механизмов настройки напрямую через VBA.

Имеется довольно странный механизм настройки ленты через редактирование xml-файла. Формат xlsx представляет из себя zip-архив нескольких файлов и папок, в одном из которых доступна настройка на ленте пользовательских функций. Странно, но разработчики Excel почему-то не предоставили интерфейс для настройки ленты иным способом. Подробнее см. MSDN:

Настройка ленты Office 2007

Вызов процедур COM-DLL из VBA

В тех случаях, когда основной алгоритм закрыт в COM-надстройке, вызов функций и процедур (например, из обработчиков пунктов меню) осуществляется через механизм позднего связывания (Late-bound). Для получения доступа к объекту надстройки используется функция COMAddIns объекта Application с указанием имени COM-надстройки. Например:

Private Function GetAddinObject_() As Object
    Dim obj As Object
    
    On Error Resume Next
    
    Set obj = Application.COMAddIns("имя.надстройки").Object
    
    Set GetAddinObject_ = obj
End Function

COM DLL (Visual Studio Tools for Office – VSTO)

Описание: полнофункциональная надстройка Excel
Требования: Visual Studio .NET различных версий и пакет VSTO
Достоинства: возможность создания интерфейса любой сложности, с использованием специфических возможностей Office 2003-2010: окна, ассистент, лента
Недостатки: требует специальный run-time-пакет (иногда несколько инсталляционных файлов) при распространении.

Этот инструмент, пожалуй, наиболее мощное средство разработки надстроек Excel. Разработчику доступны все средства технологии .NET, в том числе различные языки программирования, элементы управления и прочие ресурсы. VSTO предоставляет разработчику специальный шаблон проекта .NET. Доступ к объектам Excel осуществляется стандартными средствами языков программирования. В результате компиляции проекта также как в предыдущем примере формируется COM DLL файл. Здесь главное отличие от DLL, скомпилированных в ODT, это возможность использования любых элементов управления .NET. Однако, в отличие от ODT COM DLL, разработанный с использованием VSTO, требует дополнительных run-time пакетов на компьютере конечного пользователя. Последнее может существенно затруднить распространение программных продуктов.

Пример функциональноых возможностей настройки с использованием VSTO представлен на сайте в разделе Надстройки. В разделе Загрузки можно скачать архив исходного кода VB.NET этой надстройки.

VSTO
Миграция от ODT к VSTO

Смотри также

» Пересчет отдельных формул в рабочей книге

Типичная проблема при работе с большими или очень большими файлами Excel — это слишком сильное замедление при выполнении любых расчетов….

» Использование Excel в задачах финансового менеджмента

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

» Редактирование формул

При построении экономических моделей, обработке больших объемов данных, статистических расчетах и других задачах, решаемых при помощи…

» Копирование и вставка

В статье описываются возможности использования буфера обмена Windows и Microsoft Office, а также особенности копирования и вставки данных в Excel….

» Класс сохранения настроек Excel

В данной статье описывается небольшой, но очень удобный класс для сохранения и автоматического восстановления таких параметров…

Понравилась статья? Поделить с друзьями:
  • Пример личного бюджета в excel
  • Пример на функцию поиск решения в excel
  • Пример оформления таблицы excel
  • Пример курсовой работы word скачать
  • Пример на тему excel