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

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

среда, 10 февраля 2010 г.

Как изменить стандартные вкладки и группы на ленте

В ribbon-интерфейсе не предусмотрена возможность изменения стандартных групп и вкладок. Можно добавить свою группу на стандартную вкладку, убрать стандартную группу, убрать стандартную вкладку. Добавить свою свои элементы в стандартную группу нельзя. Нельзя также поменять местами расположение групп во вкладке. Вернее, поменять местами можно в Office 2010, но эти настройки сохраняются глобально для всего приложения, а не для отдельного документа или шаблона.
Чтобы скрыть вкладку, нужно указать для неё idMso и задать значение false атрибуту visible:

1 <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
2 <customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui">
3 <ribbon>
4 <tabs>
5 <!--Скрытие вкладки "Рецензирование"-->
6 <tab idMso="TabReviewWord" visible="false"/>
7 </tabs>
8 </ribbon>
9 </customUI>

Аналогично можно убрать стандартную группу из вкладки. Например, группу "Буфер обмена" с вкладки "Главная":
1 <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
2 <customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui">
3 <ribbon>
4 <tabs>
5 <tab idMso="TabHome">
6 <group idMso="GroupClipboard" visible="false"/>
7 </tab>
8 </tabs>
9 </ribbon>
10 </customUI>

Также можно добавить свою группу на стандартную вкладку и задать её расположение атрибутом insertBeforeMso или insertAfterMso:
1 <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
2 <customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui">
3 <ribbon>
4 <tabs>
5 <tab idMso="TabHome">
6 <!-- Вставляем свою группу на вкладку "Главная" перед группой "Абзац" -->
7 <group id="rxTabMain_gr1" label="Границы" insertBeforeMso="GroupParagraph">
8 <box id="rxTabMain_gr1_box1" boxStyle="horizontal">
9 <control idMso="BorderNone" showLabel="false" />
10 <control idMso="BordersAll" showLabel="false" />
11 <control idMso="BorderInside" showLabel="false" />
12 <control idMso="BorderOutside" showLabel="false" />
13 </box>
14 <box id="rxTabMain_gr1_box2" boxStyle="horizontal">
15 <control idMso="BorderBottomWord" showLabel="false" />
16 <control idMso="BorderTopWord" showLabel="false" />
17 <control idMso="BorderLeftWord" showLabel="false" />
18 <control idMso="BorderRightWord" showLabel="false" />
19 </box>
20 <box id="rxTabMain_gr1_box3" boxStyle="horizontal">
21 <control idMso="BorderInsideHorizontal" showLabel="false" />
22 <control idMso="BorderInsideVertical" showLabel="false" />
23 <control idMso="BorderDiagonalDown" showLabel="false" />
24 <control idMso="BorderDiagonalUp" showLabel="false" />
25 </box>
26 <box id="rxTabMain_gr1_box4" boxStyle="vertical">
27 <control idMso="TableDrawTable" showLabel="false" />
28 <control idMso="TableEraser" showLabel="false" />
29 <control idMso="BorderColorPicker" showLabel="false" />
30 </box>
31 <dialogBoxLauncher>
32 <button idMso="BordersShadingDialogWord" />
33 </dialogBoxLauncher>
34 </group>
35 </tab>
36 </tabs>
37 </ribbon>
38 </customUI>