Страницы: 1
RSS
Как с помощью Ribbon XML Editor на свою вкладку добавить существующую кнопку.
 
Подскажите, пожалуйста, как с помощью Ribbon XML Editor на свою вкладку добавить существующую кнопку Excel (например, "Вставить строку")??
Свои макросы я добавил, но для удобства холось бы еще добавить некоторые кнопки Excel/
 
Доброе время суток
Цитата
tchack написал:
как с помощью Ribbon XML Editor
Скачать, изучить и применить.
Успехов.
P. S. По аналогии можете найти и для других версий Excel.
 
Цитата
tchack написал: например, "Вставить строку")??
Элементарно - CTRL++ ... ;)
Или - вариант - вникнуть в настройки (см. скрин)
"Ctrl+S" - достойное завершение ваших гениальных мыслей!.. ;)
 
Как надо записывать-то?
Записал так (как для макросов):
<button id="RowsDelete" label="Удалить строку" size="large" onAction="TableRowsDeleteExcel" imageMso="MeetingsToolPrevious"/>
но не срабатывает.
 
Цитата
Z написал:
Элементарно - CTRL++ ... Или - вариант - вникнуть в настройки (см. скрин)
Это-то вообще как согласуется с вопросом??? Мне надо вкладку встроить в xlam.
 
Цитата
tchack написал:
<button id="RowsDelete"
А с чего вдруг такой атрибут применяете? idMso нужно установить в требуемое, вон же для картинки на кнопке всё правильно делаете. Может всё же почитать классику Customizing the 2007 Office Fluent Ribbon for Developers? Да, там три части и текста не мало, но и многие вопросы сможете оперативно в разработке решать.
 
Мне же всего одна подсказка нужна, дальше я сам разберусь, но все отправляют изучать кучу информации...
А мне всего-то надо подсказать как перенести кнопку "Вставить строку" в свою панель с кнопками макросов, используя Ribbon XML Editor.
Изменено: tchack - 27.03.2018 15:07:38
 
Цитата
tchack написал:
А мне всего-то надо подсказать как перенести кнопку "Вставить строку" в свою панель
Вот так и научишь человека рыбачить, если он даже удочку в руки взять не хочет  :D
Цитата
Андрей VG написал:
в idMso нужно установить в требуемое
Не помогло?
 
Код ниже по идее должен стать ответом на поставленный вопрос. Но, видимо, некоторые кнопки нельзя вставить на ленту отдельно. Например, кнопка TableRowsDeleteExcel располагается внутри раскрывающегося списка TableDeleteRowsAndColumnsMenu. Вот кнопка этого списка вставляется без проблем:
Код
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<customUI xmlns="[URL=http://schemas.microsoft.com/office/2009/07/customui>]http://schemas.microsoft.com/office/2009/07/customui">[/URL];
    <ribbon startFromScratch="false">
        <tabs>
            <tab id="ппп" label="апа">
                <group id="аав" label="апр">
                    <control idMso="TableDeleteRowsAndColumnsMenu" />
                </group>
            </tab>
        </tabs>
    </ribbon>
</customUI>

Я хотел предложить решение через макрос, и попробовал выполнить команду TableRowsDeleteExcel с помощью процедуры обратного вызова в VBA:
Код
Application.CommandBars.ExecuteMso ("TableRowsDeleteExcel")

Но так она тоже не вызвалась, хотя другие команды вызываются. Конечно, можно вручную написать функцию удаления текущей строки на VBA, например, так:
Код
ActiveCell.EntireRow.Delete
но хотелось бы всё же задействовать уже имеющиеся команды.

Какие у кого будут соображения?
Изменено: dolbodub - 05.07.2018 15:35:41
 
Цитата
dolbodub написал:
Но так она тоже не вызвалась
Excel 2010, у меня выполнилась и для одной строки (активная ячейка) и для двух последовательно выделенных по строкам ячеек умной таблицы.
Updated - та самая кнопочка ;)
Изменено: Андрей VG - 05.07.2018 16:06:38
 
Цитата
Андрей VG написал:
у меня выполнилась и для одной строки (активная ячейка) и для двух последовательно выделенных по строкам ячеек умной таблицы
Да, для умной таблицы команда VBA действительно выполняется.
Но почему же не выполняется для обычных строк?
Ведь кнопка этой команды на ленте работает и в том, и в другом случае, а из VBA только для умной.


Вот такая ошибка возникает, что странно:
Изменено: dolbodub - 05.07.2018 17:22:00
 
Цитата
dolbodub написал:
Ведь кнопка этой команды
Именно так и называется "Удалить строки таблицы"?
А если по вашему нет, то ищите просто удалить строки ;) , что не одно и тоже.
Изменено: Андрей VG - 05.07.2018 17:43:24
 
Андрей, приветствую!
А на русском классика есть?
 
Цитата
Андрей VG написал:
Ведь кнопка этой командыИменно так и называется "Удалить строки таблицы"?А если по вашему нет, то ищите просто удалить строки  , что не одно и тоже.
Да, вы правы. Предложенная топикстартером команда TableRowsDeleteExcel действительно распространяется только на «умную таблицу», а для общего случая следует использовать конечно SheetRowsDelete. Спасибо за наводку, был невнимателен.

Итак, стало быть, ответ на вопрос топикстартера следующий:
Код
<?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="ппп" label="апа">
            <group id="аав" label="апр">
               <control idMso="SheetRowsDelete" />
            </group>
         </tab>
      </tabs>
   </ribbon>
</customUI>
Изменено: dolbodub - 05.07.2018 23:13:48
 
Может, кому пригодится на будущее... Я попробовал осветить текущую тему в уроке, в специализированном блоге: http://fluentui.blogspot.com/2018/07/18.html

Подобных вопросов от начинающих очень много, а начать всегда непросто. Изучать тонны теории для большинства тоже не вариант. Гораздо гуманнее погружение в тему на примерах, что я и попытался сделать.
Изменено: dolbodub - 06.07.2018 15:26:05
Страницы: 1
Наверх