Статьи из блога

Word 2007: добавляем свою вкладку и свои команды

Ирина задала вопрос о настройке новой версии редактора Word для своих нужд. В частности, она спрашивала:

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

Если можно, помогите доступно объяснить.

Есть две новости: хорошая и ограничительная. Хотя, какие это новости? Описываемые ниже возможности были доступны с самого начала.

Итак, хорошая новость: ленту Office 2007 можно настроить по своему усмотрению и под свои нужды. Но тут же в игру вступает ограничительная новость: для того, чтобы настроить ленту под себя, нужны определенные знания языка программирования VBA и разметки XML. Либо, как вариант, нужна определенная сумма денег на покупку специальных программ:

  1. Ribbon Customizer for Office 2007
  2. RibbonCustomizer
Обе эти программы после установки встраиваются в ваш Word. Только первая программа сразу же добавляет новую вкладку "МЕНЮ" в стиле редактора Word 2003 и свою кнопочку, по щелчку на которой загружается ее программа-настройка ленты. А вторая программа (она мне показалась проще и легче) встраивает во вкладку "Вид" свою кнопку и предлагает настроить ленту по своему усмотрению.

Разумеется, обе программы на английском, хотя "Ribbon Customizer for Office 2007" при установке позволяет выбрать любой язык, например, белорусский. А вот русского в ней как не было, так и нет.

Для тех же пользователей, кто не хочет покупать вышеозвученные программы, либо не разбирается в программировании, я могу предложить только один варинт настройки ленты: воспользоваться пошаговым мастером, который позволит вам добавить новую вкладку со своими (часто используемыми) командами на ленту. Я покажу, как добавить на ленту вкладку с именем "Моя вкладка", содержащей следующие стандартные кнопки-команды:

  • Создать новый документ
  • Открыть документ
  • Сохранить документ
  • Сохранить как...
  • Закрыть окно

Вот как это будет выглядеть в результате:

Новая вкладка ленты

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

Итак, самым первым действием следует скачать программу для редактирования XML-содержимого ленты Office 2007 Custom UI Editor, хотя наверное можно будет воспользоваться и обычным текстовым редактором типа Notepad.

Далее описывается пошаговая инструкция с использованием редактора UI Editor. Мы будем изменять глобальный шаблон Normal.dotm, поэтому для начала сохраните этот шаблон в качестве резервной копии где-нибудь на жестком диске или на ином носителе, чтобы при желании вы могли просто восстановить ваш первоначальный шаблон. Это действие обязательно!

  1. Удостоверьтесь, что редактор Word у вас не запущен и ни один документ не открыт. Если это не так, то закройте все документы и обязательно закройте редактор Word.
  2. Запустите редактор XML-скриптов - Office 2007 Custom UI Editor и откройте в нем шаблон Normal.dotm. Как правило, путь к этому шаблону таков: C:\Documents and Settings\ИМЯ_ПОЛЬЗОВАТЕЛЯ\Application Data\Microsoft\Шаблоны\

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

  3. Вам нужно добавить свою вкладку на ленту, причем она должна отображаться самой первой и идти перед вкладкой "Главная". Для этого вставьте в окно редактора следующий код:

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

    Новая вкладка на ленте
  4. Закроем редактор Word и продолжим добавление элементов уже на нашу новосозданную вкладку.
  5. Поскольку вкладка пустая, мы должны добавить на нее группу команд. Вставьте следующее выражение между тегами ‘tab’ и ‘/tab’ вашего кода (выделено):

    Сохраните вновь изменения и снова откройте Word. Результат на скриншоте:

    Новая вкладка на ленте
  6. Итак, мы создали вкладку и группу, в которую теперь должны разместить наши кнопки-команды. Закройте редактор Word и вернитесь в окно редактора кода XML.
  7. Первой добавленной кнопкой у нас будет команда "Создать новый документ". Для этого поместите между тегами ‘group’ и ‘/group’ следующий код (выделено):

  8. Можете, сохранив изменения, посмотреть на результаты:

    Новая кнопка-команда на вкладке ленты

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

  9. Итоговый код в редакторе кода будет выглядеть так:

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

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

Недавно, учитывая пожелание сценариста Александра Волкова, я разработал шаблон "Сценарий", предназначенный для автоматизации написания киносценариев. Я полностью избавился от стандартной ленты и создал собственную ленту с тремя вкладками:

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

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

twitter.com facebook.com vkontakte.ru odnoklassniki.ru mail.ru ya.ru rutvit.ru myspace.com technorati.com digg.com friendfeed.com pikabu.ru blogger.com liveinternet.ru livejournal.ru memori.ru google.com bobrdobr.ru mister-wong.ru yahoo.com yandex.ru del.icio.us

Еще записи по вопросам использования Microsoft Word:

Комментариев: 40

  1. Юрий
    14.06.2009 в 19:26 | #1

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

  2. 15.06.2009 в 09:31 | #2

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

    скрин

    Либо можно скачать файл на сайте Майкрософт: Ссылка.

  3. Luna
    15.06.2009 в 20:35 | #3

    Или ждите версию Office 2010, где наконец-то вернули возможность простым образом редактировать ленты и кнопки на них…

  4. 15.06.2009 в 21:00 | #4

    Luna, эта информация верна? Откуда?

  5. 15.06.2009 в 21:11 | #5
  6. 16.06.2009 в 08:41 | #6

    Что ж, первые впечатления неплохие. Посмотрим как оно будет вживую.

  7. Виталий
    02.09.2009 в 23:07 | #7

    Возможно ли добавлять и скривать кнопки ... с уже существующих груп mso??7

  8. 03.09.2009 в 04:43 | #8

    Виталий, вы можете скрыть вкладку целиком или отдельные встроенные группы (целиком) с вкладки, но не встроенные кнопки в этих группах команд.

    P.S. Да, и добавить свои кнопки в существующие группы (встроенные) команд нельзя. Но свою группу со своими (или заводскими) кнопками добавить можно.

  9. Виталий
    05.09.2009 в 14:33 | #9

    Спасибо за ответ я так и думал.. Есть правда один вариант но долгий. Просто пересоздать групу и или удалить, или добавить кнопки. Я так решил эту проблему...

  10. Никита
    11.09.2009 в 05:54 | #10

    Подскажите, возможно ли добавить на созданную вкладку свой мобственный макрос. Если да, то где смотреть его идентификатор?

  11. 11.09.2009 в 06:57 | #11

    Имя макроса, который выполняется вашим элементом управления, записывается в свойстве onAction. Посмотрите эту заметку в моем блоге

  12. Максим
    21.10.2009 в 12:35 | #12

    Сделал в точности все как описывалось в статье. Редактирование глобального шаблона производил с помощью программы Office 2007 Custom UI Editor. Так же использовал ваш код XML для шаблона, чтобы не вводить вручную.

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

    С чем это может быть связано?

    Заранее спасибо.

  13. 21.10.2009 в 12:49 | #13

    Максим, а при открытии документа Ворд не выдает сообщения об ошибках? Если нет, то включите параметр "Показывать ошибки интерфейса пользователя надстроек", который располагается на вкладке "Дополнительно" диалогового окна "Параметры Word" (группа "Общие").

    Если после этого появятся сообщения об ошибке, значит вы все-таки где-то допустили ошибку при вводе данных.

  14. Максим
    21.10.2009 в 13:36 | #14

    Максим, а при открытии документа Ворд не выдает сообщения об ошибках? Если нет, то включите параметр "Показывать ошибки интерфейса пользователя надстроек"

    Точно!=) Стали всплывать ошибки:

    "код ошибки oxcooee3b, имя в конечно теге элемента должно совпадать с типом элемента в начальном теге"

    Видно где-то я переусердствовал...

    Я первый раз пробую программировать и настраивать интерфейс Ворда. Раньше никогда этим не занимался.

    Спасибо за совет=), буду разбираться.

  15. Алексей Ничков
    22.03.2010 в 12:27 | #15

    Антон, а можно ли назначить на кнопку стиль текста, как в 2003 Ворде? Через XML?

  16. 22.03.2010 в 17:15 | #16

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

    Sub SetStyle(control As IRibbonControl)
      Selection.Style = control.Tag
    End Sub

    Имя стиля можно задать в атрибуте tag и использовать один и тот же макрос для разных стилей

  17. Алексей Ничков
    23.03.2010 в 11:27 | #17

    Спасибо Александр, видимо это единственный путь. Проделал вот какой эксперимент: создал панель в 2003 Ворде, потом сохранил как шаблон 2010 Ворда и открыл его в RXE. Панель была как VBA объект. Собственно получилось как вы и говорили. Также заметил один ньюанс, если файл был создан в 2003 Ворде, то сохранение его как Normal.dotm не позволяет вносить изменения в ленту.

    Думал создать всё необходимое средствами 2003 Ворда, а затем настроить в 2010. Не получилось. Код в RXE пишется, но 2010 на него не реагирует.

  18. 06.05.2010 в 05:27 | #18

    Кажется добрался до интересующей меня проблемы.

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

    В любом случае есть повод поставить ознакомительную версию 2010...

    Но...есть упрёк к таварищу Гейтцу...Блин переход на 2007 прошёл с потерями...

    С уважением

  19. 06.05.2010 в 12:18 | #19

    Не совсем понятен вопрос. Но если речь идет о вкладках для шаблона, то да, можно создавать свои шаблоны со своими вкладками. Например, так сделан шаблон "СЦЕНАРИЙ" (для автоматизации написания киносценариев).

  20. 08.05.2010 в 06:36 | #20

    Здравствуйте!

    Да, да!

    В Word 2003 у меня было несколько шаблонов посвящённых различным темам.

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

    Теперь (в W2007) есть одна вставка атотекста и добольно громоздкое дерево мои заготовленных элементов. Организатор блоков сохранил всё в автотексте, а автотекс я сохранил в шаблоне. Но...Во-первых всё это перемешалось с огромным количеством родных элементов автотекста. Просто их затереть боязно...Программа спрашивает - Вы же изменили Building blocks!

    Т.Е. я меняю и основной шаблон таким образом? Или нет?

    Во-вторых одно окошко Вставка автотекста менее наглядна!

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

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

    С уважением.

  21. 17.05.2010 в 08:34 | #21

    Здравствуйте.

    может, не туда смотрю, но файл

    http://wordexpert.ru;/wp-content/uploads/files/xml_code.txt

    указанный в Вашей статье, не найден.

    если можно, дайте рабочую ссылку.

    С уважением,

  22. 17.05.2010 в 08:42 | #22

    Спасибо за сигнал! Ссылка после редизайна сайта оказалась неверной и я ее уже поправил. Еще раз спасибо.

  23. 06.06.2010 в 19:36 | #23

    Здравствуйте уважаемый Антон!

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

    Мне не совсем понятно, что это не актуальная проблема? Что MS загнала весь автотекст в один раскрывающийся длинный столбец или предполагается, что я должен ползти в Вставка\building blocks\организатор и т.п. что бы опять увидеть длинный ряд до пола!?

    Удалось поставить пресловутый Ribbon customiser v 1.1.2691.28115. Да действительно вкладки группы, всё появляется… Как разместить на отдельной закладке отдельную группы из этих чёртовых building blocks!

    Есть значок “настраиваемый автотекст и какая-то настраиваемая коллекция…Кто бы разъяснил как их настраивать….

    В 2003 я просто добавлял на панели автотекста новое меню и туда перетаскивал один из элементов автотекста, получалась несколько столбиков из таких вставок… В этом кастомайзере это возможно?

    Если это не так, то напишите пожалуйста подробнее листинг на вставку отдельной вкладки с указанием отдельного абзаца текста, автотекста!

    Посмотрел отзывы о W2010 и о том, что и там возможно не всё так просто…..

    Ну, решение напрашивается само – тупо снести W 2007! Не просить покупать W2010 и восстановить W2003

    С уважением

  24. 07.06.2010 в 10:07 | #24

    ank, о настраиваемом автотекст у меня была опубликована целая заметка: Настраиваемый автотекст.

    А эту заметку читали: Автотекст и Word 2007? Правда, ссылка на надстройку AutoComplete 5.0 для MS Word уже не актуальна - на сайте авторов ее вообще нет. Написал им письмо...

  25. 07.06.2010 в 19:35 | #25

    Уважаемый Антон!

    Ура, именно её только что и прочитал, правда добирался чрез голову правой рукой до левого уха!

    Прямо и не знаю что бы делал без Вашего сайта и Вашей бескорыстной помощи!

    Конечно. Я наметил решение проблемы так:

    1. Ribon Customfizer - новая вкладка.

    2. Настраиваемая колекция, настраиваемый автотекст и кажется есть настраиваемые блоки! Коллекций несколько! Ну и получится вместо одной длинной ленты несколько коротких. К W2003 можно не возвращаться!

    Остаётся только раздражение от "просвятительской деятельности" официального сайта виновника торжества. Тупо перечитывать в 25 раз, "что элемент автотекста можно создать так, правда в W2007 решено от этой функции отказаться..."

    С уважением и большой признательностью. Спасибо Хозяину и всему сообществу добрых и заинтересованых людей...

    Ради интереса посмотрю, как быстро и что мне ответят!

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

  26. 07.06.2010 в 19:42 | #26

    Был бы этот сайт, где еще живет и будет жить его Хозяин! smile

  27. 27.06.2010 в 21:45 | #27

    Нет в мире совершенства ! :( ;(

    Таки есть этот настраиваемый автотекст и есть 5 настраиваемых коллекций и настраиваемые блоки к тому же. Проблема в W2007 их не переименовать, ну ладно вкладку я создал с ними...Дальше бумажка с расшифровкой что в какой коллекции...Неудобно. Ладно в 2010 можно переименовать...Но вкладка то постоянная остаётся для всех шаблонов. Зачем она мне в Normal.dotx. Я его специально к шаблону привязываю, а тут пустая вкладка останется пусть и без коллекций, но зачем она нужна? Да и неудобно пустьи семь списков, но система распадающихся меню не в пример удобнее.

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

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

    Есть выход вернуться к W2003. В принципе останавливает только жадностьsmile уж больно высокое собрание и Антон Вадимовичувлекательно рассказываю про всякое там програмирование...Купил книжку про макросы...Тихонько прочитаю конечно...Но опять вопрос.

    Вопрос

    Можно ли с помощью ранее описанного создать такие меню, привязанные к автотексту?

    С уважением

  28. 29.06.2010 в 11:45 | #28

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

  29. 30.06.2010 в 05:10 | #29

    Здравствуйте уважаемый Александр!

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

    Можно конечно стукнуть кулаком начальнику и сказать дайте "мне програмиста"...Но я так не люблю...Лучше потихонечко самому....

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

    Большое спасибо...

  30. 30.06.2010 в 10:28 | #30

    Как говорится: "Глаза боятся, а руки делают." Ничего страшного в том, что я пишу нет, я не профессиональный программист, а любитель, поэтому то, что делаю я, вполне доступно всем остальным.

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

  31. 30.06.2010 в 20:02 | #31

    я не профессиональный программист, а любитель,

    Это то и обидно Александр. Ну, а если бы не было вас и Антона Вадимовича?

    Я то ведь не сразу понял, что переход с 2003 утратил качество...Я то думал я тупой и настроек не вижу...Вот, что обидно...

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

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

    А я думал, только наш Левша аглицких блох так куёт, что они после этого прыгать перестают!

    Мне кажется Microsoft просто поменяла команду разработчикови пришли вместо механиков криворукие художники и получился фотошоп для буковок...

    В любом случае иужики низкий вам поклон за Ваш труд!

  32. 04.07.2010 в 08:12 | #32

    Вкладку то я добавил!

    Решил не рисковать и начать переделывать пробный шаблон.

    Проблема №1

    Почему-то кирилический шрифт в этом Ui редакторе на глазах меняется в какую-то третью раскладку с умляутами сверху! Думал это глючит Punto Switcher - выключил -нет! Добро бы он кирилицу не понимал - набирается строка кирилицой и на глазах превращмается в кракозябры - пришлось пробывать с латиницей!B И настроек что-то я не вижу никаких в этом редакторе! Или попробывать вытравить Punto вообще. Но не включен он!

    Проблема №2

    Этап №1

    Проверка промежуточного результата. Нажал на пиктограмму с дискетой. Под значком моего шаблона слева появилась пиктограмма с подписью customUI.xml пока не кликнул правой клавишей на подзаголовок с надписью Офис 2007 или 2010 и в новое окно с подписью customUI14.xml не перекопировал написанное ничего не изменилось! К сожалению так и не понял, что сделал и почему получил результат.

    Но больше всего меня беспокоит невозмодность писать кирилицей, мне автотекст нужен кирилический ведь!

    С уважением

  33. 04.07.2010 в 08:30 | #33

    Спроблемой 2 разобрался!

    Правой клавишей мы выбираем в какой office 2007 or 2010 добавляем эту вкладку на тот customUI.xml и сохраняем!

    Но Проблема с кириллицей не решается!

    Помогите...

  34. 05.07.2010 в 14:04 | #34

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

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

    Может это рука судьбы?

    С уважением.

  35. 06.07.2010 в 09:28 | #35

    ank, а я всё думаю, как это у вас кириллица не отображается? Что ж, советую попробовать программу Ribbon XML Editor, лично для меня она не в пример удобнее и мощнее. Ну и с кириллицей никаких проблем!

  36. 06.07.2010 в 21:36 | #36

    Здравствуйте Александр!

    Это только вершина айсберга. Я только недавно заметил, что есть форум! Нет ну правда зачем кликать в задать вопрос если есть окно вопросник внизу?

    Так вот форум меня не видит! И видеть не хочет, хотя пишет, что я есть.

    Надеюсь Антон Вадимович разберётся с несправедливостью smile

    Слушайте а Ваиши рекомендации по шаблонам там так же осуществимы? Я скачал прочитал анонс...Звучит заманчиво. Просто эти виражи как-то пугают...Только кастомайзер освоил....Пришлось признать его не хватит...Теперь этот редактор русофоб (кирилофоб) smile

    С уважением.

  37. 07.07.2010 в 05:48 | #37

    Прочитал примеры и полазил по сайту.....Интересное место, правдо автор всё видит в чёрном светеsmile Спасибо большое, попробую двинуться в этом направлении...Нет, ну подумайте...Редактор кирилофоб....smile

    С уважением

  38. 07.07.2010 в 21:57 | #38

    Я только недавно заметил, что есть форум! Нет ну правда зачем кликать в задать вопрос если есть окно вопросник внизу?

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

    «Кирилофоб» — это сильно!

  39. Terminators
    26.11.2010 в 12:19 | #39

    Добрый день!

    Как с помощью VBA создать вкладку, ну или др. элемент на ленте?

    Это нужно для чего? В PowerPoint нет общего шаблона. Я сделал надстройку .ppam. В нём есть макрос. Но как его запустить - не знаю. Хочу добавить в код создание элемента ленты и присвоить ему запуск макроса (в PowerPoint 2003 такое возможно).

  40. Гость
    17.12.2013 в 20:38 | #40

    Здравствуйте, а как в Word 2007 добавить произвольный шрифт на титул окна? Такое было возможно в Ворде 2003. Очень удобно, если приходится часто пользоваться разными шрифтами и быстро переключаться между ними.

    Спасибо.

Оставьте комментарий!

(обязательно)

^ Наверх