Как Создать Пользовательский Стиль в Excel • Выявление записей-дубликатов

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

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

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

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

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

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

  • 1Button(обычная кнопка)
  • 2TextBox(текстовое поле с возможностью записи в него значений и считывания значений из него)
  • 3List(выпадающий список с заранее заданным списком значений)
  • 4ComboBox(выпадающий список с возможностью записи в поле произвольного значения)
  • 10PopupMenu(выпадающее меню с возможностью добавления новых элементов)

Иногда возникает вопрос: как сделать на такой панели ToggleButton? Т.е. кнопку, которая при нажатии остается в нажатом состоянии, а при повторном нажатии — в отжатом(т.е. в обычном). В данном случае это возможно исключительно через «финты» вызываемой по нажатию кнопки процедуры:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Как создать свою надстройку?
Вы тратите много времени на форматирование данных в Excel? Если да, то опция Автоформат может оказаться полезной для ускорения работы по форматированию. Он позволяет быстро применить предустановленное форматирование к набору данных, который имеет одну строку заголовка и один столбец заголовка.
Знайка, самый умный эксперт в Цветочном городе
Мнение эксперта
Знайка, самый умный эксперт в Цветочном городе
Если у вас есть вопросы, задавайте их мне!
Задать вопрос эксперту
Функция общего стиля ячеек в Excel 2010 позволяет легко и быстро создавать профессиональные и презентабельные данные без необходимости вручную выделять и форматировать все ячейки. Если же вы хотите что-то уточнить, я с радостью помогу!
Отлавливание ненужных пробелов вручную занимает много времени — разумнее автоматизировать данный процесс, установив бесплатный плагин Trim Spaces (http://www.ablebits.com/files/trim-spaces-excel-12.zip; 1,2 Мбайт). С его помощью выявить и удалить такие пробелы можно будет в считаные секунды, ведь для этого потребуется лишь выделить интересующие столбцы и щелкнуть на кнопке Trim Spaces (рис. 7).
Рис. 6.15. Таблица с отсортированными текстовыми данными

Как в Word 2010 создать свой стиль таблицы — Microsoft Office для женщин

  • 1Button(обычная кнопка)
  • 2TextBox(текстовое поле с возможностью записи в него значений и считывания значений из него)
  • 3List(выпадающий список с заранее заданным списком значений)
  • 4ComboBox(выпадающий список с возможностью записи в поле произвольного значения)
  • 10PopupMenu(выпадающее меню с возможностью добавления новых элементов)

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

Оставить отзыв

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