Как Создать Пользовательский Стиль в Excel • Выявление записей-дубликатов
Как создать свою надстройку?
КАК СОЗДАТЬ НАДСТРОЙКУ
Создать надстройку просто: из любого файла Excel идете в меню:
Я покажу создание надстроек на примере простого кода, который будет записывать в активную ячейку текущего листа число 10, закрасит ячейку красным цветом и установит для ячейки границы.
Код этой процедуры:
Код помещается в стандартный модуль книги, из которой хотите сделать надстройку.
Основные моменты я постарался расписать в комментариях, но на некоторых все же хочу заострить внимание.
-
Свойство Type
.Controls.Add(Type:=1)
Наверное, самое важное свойство. Оно отвечает за тип элемента меню. Доступно всего пять типов:
- 1 — Button(обычная кнопка)
- 2 — TextBox(текстовое поле с возможностью записи в него значений и считывания значений из него)
- 3 — List(выпадающий список с заранее заданным списком значений)
- 4 — ComboBox(выпадающий список с возможностью записи в поле произвольного значения)
- 10 — PopupMenu(выпадающее меню с возможностью добавления новых элементов)
Иногда возникает вопрос: как сделать на такой панели ToggleButton? Т.е. кнопку, которая при нажатии остается в нажатом состоянии, а при повторном нажатии — в отжатом(т.е. в обычном). В данном случае это возможно исключительно через «финты» вызываемой по нажатию кнопки процедуры:
Еще одна проблема при разработке таких панелей: невозможность явно указать кнопку в стиле Caption(т.е. неактивную к нажатию кнопку). Это тоже можно сделать при помощи обычной Button, только в свойствах кнопки надо свойство Enabled установить в False:
.Enabled = False
при этом обязательно необходимо указать Style 2 и назначить Caption.
- 1 — только значок(16×16). Необходимо указывать свойство FaceID
- 2 — только текст. Свойство FaceId может быть указано, но никак не влияет на внешний вид кнопки
- 3 — картинка и текст. Обязательно указывать хотя бы одно из свойств: Caption или FaceID
Во вложении ниже пример надстройки с открытым кодом. Но в примере код расширен — там я привел коды с использованием всех типов элементов: и кнопки, и эмуляция ToggleButton, и списки, и текстбокс и выпадающее меню с доп.кнопками. В кодах есть комментарии, поэтому при желании разобраться не составит труда.
Так же можно при запуске надстройки добавлять в контекстное меню(меню, появляющееся по правому клику мыши на ячейке) свои команды. По сути мало что меняется, кроме пары вещей:
- надо указывать конкретное имя меню, в которое добавляем некую кнопку. Для контекстного меню ячеек это «Cell»:
Application.CommandBars(«Cell») - лучше указывать положение элемента относительно уже существующих в меню. Делает это при помощи указания параметров before или after:
Application.CommandBars(«Cell»).Controls.Add(Type:=1, before:=4)
При этом добавить можно как собственные кнопки, так и уже существующие. Для примера добавим одной кнопкой дубль нашей команды с лены «ИЗМЕНИТЬ СВОЙСТВА АТИВНОЙ ЯЧЕЙКИ», а второй — вставку в ячейку только значений(встроенная команда — подробнее в статье: Как удалить в ячейке формулу, оставив значения?):
Первый метод , он же совсем неудобный и требует навыков работы с XML
- Изменить расширение файла с .xlam на .rar и открыть любым архиватором.
Если не отображается расширение:
Панель управления—Свойства папки(для Win 7 — Параметры папок)- вкладка Вид— Снять галочку с «Скрывать расширение для зарегистрированных типов файлов» - Добавить в архив папку «customUI», папку «_rels» и папку «images»
- Создать файл «customUI.xml», который лично я бы назвал основным — в нем необходимо впоследствии прописать все панели и команды по законам языка XML. После чего данный файл необходимо поместить в папку «customUI»
- В папке «images» будут храниться все значки, которые будут расположены на панели
- Папка «_rels» должна внутри содержать файл «customUI.xml.rels», в котором перечисляются связи картинок с командами и панелями. Проще говоря — схема взаимосвязей ресурсов
Но все это очень муторно и необходимо знать язык XML. Уверен, большая часть читающих статью уже 100500 раз нахмурили брови и пару раз перечитали, надеясь понять о чем речь. Поэтому не будем дальше разбирать этот метод и перейдем к следующему.
Для отладки схемы через RibbonXMLEditor можно использовать кнопку отладки(зеленый треугольник) или сочетание клавиш F9. Если в схеме будут ошибки — они сразу будут найдены и показаны в сообщении, с указанием номера строки и столбца, в которых ошибка.
На этом, казалось бы, все. Но нет. Просто так, сама по себе XML-схема не вызовет процедуру — необходимо создать функции обратного вызова. Вот здесь у RibbonXMLEditor есть еще одна отличная функция — генерация модуля обратных вызовов — 9. Нажимаем на кнопку — получаем готовые функции. Как правило верхние две строки не нужны — нам нужны лишь сами функции:
Копируем. Сохраняем схему нажатием дискеты в RibbonXMLEditor и закрываем программу.
Теперь открываем наш файл и вставляем скопированный текст функции. В эту функцию прописываем вызов нашей, уже созданной ранее процедуры: Test
Так же как и в случае с надстройками для 2003 Excel, здесь можно создавать кнопки в контекстном меню(правая кнопка мыши), но и тут не обошлось без нюансов:
- изменение данного меню доступно только начиная с версии Excel 2010. Для 2007 версии придется использовать старые методы — те же, что и для 2003(т.е. внедрение отдельного кода на Workbook_Open надстройки, как в примере выше для надстройки 2003)
- в надстройке Ribbon XML Editor я не нашел встроенного инструмента для вставки кодов обработки меню правой кнопкой мыши. Похожий по «звучанию» contextualTabs не совсем то, что нужно(а если быть точнее — совсем не то). contextualTabs — это динамические вкладки, которые появляются после основных вкладок при работе с определенными объектами. Например, с умными таблицами. Когда выделяем умную таблицу или любую ячейку в ней, то появляется группа динамических вкладок «Работа с таблицами». Вот в неё и вносятся изменения при помощи contextualTabs
Поэтому прописывать «добавки» в меню по правой кнопке мыши придется самостоятельно. Код вставки уже имеющегося у нас кода приведен ниже:
Осталось дело за малым — научиться эти надстройки подключать. Но об этом я уже писал в статье Подключение/отключение надстроек

Как в Word 2010 создать свой стиль таблицы — Microsoft Office для женщин
- 1 — Button(обычная кнопка)
- 2 — TextBox(текстовое поле с возможностью записи в него значений и считывания значений из него)
- 3 — List(выпадающий список с заранее заданным списком значений)
- 4 — ComboBox(выпадающий список с возможностью записи в поле произвольного значения)
- 10 — PopupMenu(выпадающее меню с возможностью добавления новых элементов)
Отмеченные опции будут показывать, какие атрибуты форматирования текущей ячейки будут включены в новый стиль. По умолчанию активизированы все флажки. Однако, если Вы не хотите включать в стиль атрибуты форматирования определенных категорий, отмените выбор соответствующих опций. Чтобы создать новый стиль, щелкните на кнопке OK .




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