Создание панели в excel
Опытные пользователи Excel весьма активно используют возможность Microsoft Excel настраивать интерфейс "под себя" - добавляют в него новые кнопки, убирают ненужные, создают целые панели или вкладки со своими авторскими наборами инструментов. Но есть одна проблема. При переходе на другой компьютер или после переустановки Windows / Office все эти ручные настройки часто теряются и приходится настраивать все заново. Давайте разберем, как можно подстраховаться и сохранить их на будущее - для восстановления или переноса на другой ПК.
Excel 2003 и старше
В старых версиях настройка интерфейса происходила через команду меню Сервис - Настройка (Tools - Customize) . Используя это диалоговое окно, можно:
- создавать дополнительные панели инструментов, наполняя их нужными лично Вам кнопками - вкладка Панели инструментов - кнопка Создать (Toolbars - New)
- добавлять недостающие и удалять ненужные кнопки - перетаскивание мышью с вкладки Команды (Commands) прямо на панель и обратно
На самом деле конфигурацию панелей инструментов Excel 2003 хранит в специальном файле, обновляя в нем данные после каждого сеанса работы с Excel. Файл располагается (скорее всего) по адресу C:\Documents and Settings\имя\Application Data\Microsoft\Excel и называется:
- Excel10.xlb - для версии Excel 2002
- Excel11.xlb - для версии Excel 2003
Вы можете легко скопировать этот файл на другой компьютер (с той же версией Excel) или сделать резервную копию этого файла на случай переустановки Microsoft Office.
Excel 2007
В этой версии Excel, к сожалению, не позволял пользователю настраивать ленту - добавлять и удалять кнопки можно было только на панель быстрого доступа (Quick Access Toolbar) в левом верхнем углу экрана. Настройки этой панели сохраняются в файле Excel.qat, лежащем в папке C:\Documents and Settings\имя\Local Settings\Application Data\Microsoft\Office
Excel 2010 и новее
В этой версии все сделано максимально удобно. Настраивать можно все - и ленту и панель быстрого доступа. При этом все эти нестандартные настройки можно просто экспортировать в небольшой текстовый файл, откуда их потом можно легко восстановить импортом. Чтобы это сделать выберите Файл - Параметры - Настройка ленты - Импорт-экспорт (File - Options - Customize Ribbon - Import-Export) :
На информационной панели наглядно представлены ключевые показатели, что позволяет быстро просматривать и анализировать данные. Здесь доступны не только консолидированные данные, но и функции бизнес-аналитики, позволяющие отфильтровать данные и вывести только то, что действительно важно. Раньше для этого требовалось создавать в Excel несколько отчетов, предназначенных для разных людей или отделов.
В этой статье мы покажем, как создать динамическую панель мониторинга с помощью сводных диаграмм, сводных таблиц и их инструментов. Затем мы добавим в нее срезы и временную шкалу, позволяющие фильтровать данные путем свертывания и развертывания сводных таблиц и диаграмм. Кроме того, информационную панель можно быстро обновлять при добавлении или обновлении данных. Это очень полезная функция, так как отчет панели достаточно создать один раз.
В этом примере мы создадим четыре сводных таблицы и диаграммы на основе одного источника данных.
Настроив информационную панель, мы покажем, как поделиться ею, создав группу. Кроме того, мы предлагаем для скачивания интерактивную книгу Excel, в которой вы можете самостоятельно выполнить все описанные ниже действия.
Получение данных
Вы можете скопировать и вставить данные непосредственно в Excel или настроить запрос из источника данных. В этой статье мы использовали запрос Анализ продаж из шаблона Борей для Microsoft Access. Если вы хотите использовать его, откройте Access, выберите Файл > Создать, выполните поиск по запросу "Борей" и создайте шаблон базы данных. После этого вы сможете получить доступ ко всем запросам, которые включены в шаблон. Мы уже вставили эти данные в книгу Excel, поэтому не беспокойтесь, если у вас нет Access.
При необходимости отформатируйте данные в виде таблицы Excel. При импорте из Access данные автоматически импортируются в таблицу.
Создание сводных таблиц
Выделите любую ячейку в диапазоне данных и выберите Вставка > Сводная таблица > На новый лист. Дополнительные сведения см. в статье Создание сводной таблицы для анализа данных листа.
Добавьте нужные поля сводной таблицы, а затем отформатируйте ее по своему усмотрению. Эта сводная таблица станет основой для других, поэтому внесите все необходимые изменения в ее стиль, макет отчета и форматирование, чтобы не делать этого несколько раз. Дополнительные сведения см. в этой теме. Разработка макета и формата стебли.
В этом примере мы создали общую сводку продаж по категориям продуктов и отсортировали данные по полю "Продажи" в порядке убывания.
Создав образец сводной таблицы, выберите и скопируйте его, а затем вставьте в пустые области листа столько раз, сколько необходимо. В нашем примере в сводных таблицах могут меняться строки, но не столбцы, поэтому они расположены в одну строку и разделены пустым столбцом. Однако если в сводных таблицах можно раскрывать столбцы, их может потребоваться поместить друг под другом.
Важно: Сводные таблицы не могут накладываться друг на друга, поэтому оставьте между ними достаточно места для их развертывания и свертывания при фильтрации, добавлении и удалении значений.
Рекомендуем присвоить сводным таблицам понятные имена, чтобы знать, для чего они нужны. По умолчанию они называются "Сводная таблица1", "Сводная таблица2" и т. д. Выделите каждую таблицу, откройте вкладку Работа со сводными таблицами > Анализ и введите новое название в поле Имя сводной таблицы. Имена понадобятся при подключении сводных таблиц к срезам и временным шкалам.
Создание сводных диаграмм
Щелкните в любом месте первой сводной таблицы, выберите Работа со сводными таблицами > Анализ > Сводная диаграмма и укажите тип диаграммы. Мы выбрали комбинированную диаграмму, на которой столбец "Продажи" показан как гистограмма с группировкой, а данные из столбца "% от итога" представлены как линейный график на вспомогательной оси.
Выберите диаграмму, а затем укажите ее размер и формат на вкладке Работа со сводными диаграммами. Дополнительные сведения можно найти в серии статей по форматированию диаграмм.
Повторите действия для каждой сводной таблицы.
Настало время переименовать сводные диаграммы. Откройте вкладку Работа со сводными диаграммами > Анализ и введите новое название в поле Имя диаграммы.
Добавление срезов и временных шкал
Срезы и временные шкалы позволяют быстро отфильтровать сводные таблицы и диаграммы, чтобы получить только интересующие вас данные.
Выберите любую срез и перейдите на вкладку Средства для работы со > Анализ > Фильтр > Вставка среза ипроверьте каждый элемент, который вы хотите использовать для среза. Для этой панели мониторинга мы выбрали Категорию, Название продукта, Сотрудник и Имя клиента. Когда вы нажмете кнопку ОК, срезы будут добавлены в середину экрана и наложены друг на друга, поэтому вам потребуется расположить их и размер.
Параметры среза: щелкните срез, выберите Средства среза > Параметры и задайте различные настройки, например стиль и количество столбцов. Чтобы выровнять несколько срезов, щелкните их, удерживая клавишу CTRL, и нажмите одну из кнопок в группе Выровнять на вкладке Средства среза.
Подключения к срезам: срезы будут связаны только со сводной таблицей, в которой они были созданы, поэтому нужно выбрать каждый срез, щелкнуть Средства среза > Параметры > Подключения к отчетам и указать, какие сводные таблицы необходимо подключить к ним. С помощью срезов и временных шкал можно управлять сводными таблицами на любом листе, даже если он скрыт.
Добавление временной шкалы: выберите сводную таблицу, щелкните Работа со сводными таблицами > Анализ > Фильтр > Вставить временную шкалу и выберите элементы, которые вы хотите использовать. Для этой информационной панели мы выбрали поле "Дата заказа".
Параметры временной шкалы: щелкните временную шкалу, откройте вкладку Инструменты временной шкалы > Параметры и задайте такие настройки, как Стиль, Заголовок и Подпись. Выберите параметр Подключения к отчетам, чтобы связать временную шкалу с нужной сводной таблицей.
Дальнейшие действия
Теперь на информационной панели доступны все функции, но, вероятно, вы захотите внести в нее завершающие штрихи. Например, можно добавить название отчета или фон. В этом примере мы добавили фигуры вокруг сводных таблиц и отключили заголовки и линии сетки на вкладке "Вид".
После завершения настройки информационной панели щелкните вкладку "Общий доступ к панели мониторинга" в верхней части этой статьи, чтобы узнать, как распространить ее.
Поздравляем с созданием информационной панели! На этом шаге мы покажем, как настроить группу Майкрософт для обмена панелей мониторинга. Для этого мы закрепим панель мониторинга в верхней части библиотеки документов вашей группы в SharePoint, чтобы пользователи могли легко получить к ней доступ в любое время.
Примечание: Если вы еще не настроили группу, см. статью Создание группы в Outlook.
Сохранение информационной панели в группе
Если вы еще не сохранили книгу информационной панели в группе, сделайте это. Если она уже находится в библиотеке файлов группы, можно пропустить этот шаг.
Откройте группу в Outlook 2016 или Outlook в Интернете.
Добавление книги на сайт группы SharePoint Online
Если вы открыли библиотеку документов из Outlook 2016, щелкните Главная в области навигации в левой части экрана. Если вы открыли библиотеку документов из Outlook в Интернете, щелкните Еще > Сайт в правой части ленты.
Найдите книгу информационной панели и щелкните кружок слева от ее имени.
Выбрав книгу, нажмите кнопку Закрепить наверху на ленте.
Теперь лист информационной панели будет выводиться вверху страницы "Документы" сайта группы SharePoint Online. Пользователи смогут легко получать доступ к последней версии информационной панели, щелкнув ее.
Совет: Кроме того, доступ к книге информационной панели и другим файлам в библиотеке документов группы можно получать через мобильное приложение Outlook Groups.
Вместо предисловия
Заранее хочу оговориться, что сам я не профессионал в области разработки под MS Office, и здесь возможно найдутся люди, которые раскритикуют мое решение в пух и прах. Что ж, я буду рад любой конструктивной критике. Так же эта статья не является исчерпывающим руководством по написанию Excel Add-ins, не ставит цели подробно описать архитектуру Excel Add-ins или содержимое пространства имен Microsoft.Office.Core. Это вводная статья, которая, как я надеюсь, поможет новичку сориентироваться в новой для него теме и проведет через процесс создания add-in’а, который делает что-то осмысленное. Итак, приступим!
Готовим солюшен
Откроем студию и создадим новый проект типа Excel 2010 Add-in. Назовем его SampleAddIn:
Если у вас все получилось правильно (а что собственно здесь могло получиться неправильно. ), вы увидите солюшен со следующей структурой:
Единственный файл, который сгененрировала для нас студия – это ThisAddIn.cs:
Здесь все просто – мы всего лишь регистрируем обработчики событий запуска и завершения нашего add-in’а. Сейчас, естественно, наш Add-in ничего не делает, но вы уже можете его запустить как обычный проект, по нажатию F5. Что особенно приятно, на этом этапе можно не заморачиваться развертыванием, т.к. студия сама запускает Excel с нужными настройками безопасности и подсовывает ему наш Add-in. Если все получилось, то при запуске Excel вы увидите такую надпись:
Рисуем интерфейс
Добавим в солюшен элемент типа Ribbon и назовем его SampleRibbon
В дизайнере добавим туда кнопку:
И зададим названия для вкладки, группы и кнопки:
А так же создадим обработчик нажатия кнопки:
Ковыряем чуть глубже
На данный момент мы столкнулись с двумя проблемами: во-первых, если в классе ThisAddIn есть поле Application, дающее доступ к запущенному экземпляру Excel, то в классе Ribbon ничего подобного нет, а следовательно непонятно, как именно взаимодействовать с листами Excel’я. Во-вторых, как мы все знаем, смешение логики отображения и бизнес-логики является отличной заготовкой для хорошей порции спагетти в вашем коде. Поэтому изменим код, так чтобы избавиться от этих двух проблем, а заодно разберемся в «магии», которая встроила наш Ribbon в Excel без каких-либо действий с нашей стороны.
За создание пользовательских лент в Add-in’е отвечает метод CreateRibbonExtensibilityObject из класса AddInBase, от которого на самом деле унаследован наш класс ThisAddIn. Слава богу, этот метод был предусмотрительно сделан виртуальным, так что перегрузить его не составит проблем. Для начала добавим в класс ThisAddIn код:
И запустим проект. Вуаля! Вкладка исчезла. Теперь изменим класс SampleRibbon:
И класс ThisAddIn:
Работаем с ячейками
Теперь пришло время для того, ради чего собственно и был затеян весь это сыр-бор – генерации таблицы. Для начала создадим пару вспомогательных методов для оформления ячеек:
Теперь напишем код для получения списка дней месяца:
И сведем это все воедино:
Если вы нигде не ошиблись, то запустив проект, и нажав на кнопку на нашей вкладке, вы увидите нечто подобное:
Прикреплённая к статье надстройка содержит модуль, который может создавать панель инструментов любой сложности при запуске файла.
На панель можно добавлять как обычные кнопки, так и раскрывающиеся выпадающие списки, подменю, текстовые поля.
Формирование панели инструментов происходит при загрузке файла, при закрытии же его - созданная панель скрывается:
Основной код модуля:
Комментарии
Решение с кодировкой описано по этой ссылке
у меня английский excel, со шрифтами беда
Подгрузка своих картинок с диска
Sub ImageFromExternalFile()
Dim Btn As Office.CommandBarButton
Set Btn = Application.CommandBars.FindControl(ID:=30007) _
.Controls.Add(Type:=msoControlButton, temporary:=True)
With Btn
.Caption = "Click Me"
.Style = msoButtonIconAndCaption
.Picture = LoadPicture("C:\TestPic.bmp")
End With
End Sub
Подгрузка своих картинок из документа
Sub ImageFromEmbedded()
Dim P As Excel.Picture
Dim Btn As Office.CommandBarButton
Set Btn = Application.CommandBars.FindControl(ID:=30007) _
.Controls.Add(Type:=msoControlButton, temporary:=True)
Set P = Worksheets("Sheet1").Pictures("ThePict")
P.CopyPicture xlScreen, xlBitmap
With Btn
.Caption = "Click Me"
.Style = msoButtonIconAndCaption
.PasteFace
End With
End Sub
Если вопрос личного плана, - на почту или в скайп.
Если надо что-то сделать за денежку, - оформляете заказ.
Если вопрос по Excel (но статьи на сайте нет), - обращайтесь на форумы по Excel (там всегда подскажут и помогут)
Да, не туды в Object Browser'e глянул, извиняюсь.
А если у меня вопрос к Вам, не касающийся этой темы, и подходящей темы нет, то как быть?
Ну а как нет-то. смотрите пример в этой статье
Если вы говорите про msoControlButton на панели инструментов Excel
Оно хорошо, но разве у Button есть свойство FaceID?
Ещё вопрос: как можно кнопке типа msoControlButton указать свою картинку? Что надо загнать в свойство Picture и какие требования предъявляются к таким иконкам?
Заранее спасибо за ответ)
Здравствуйте (свинтус я, что сразу не поздоровался).
Подход правильный, т.к. суть во внешней подписке, которая слушает эти события - конечная цель в ней, а не в них. Private убирал, но не видит он эти Sub'ы всё равно. Хотя, попробую ещё. А вот вариант "сам-себе-присвоил" красивый. Не знал, что эксель на такое ведётся и событие изменения генерит. Спасибо!
. хотя в идеале всё равно хотелось бы своё событие дёргать, а не штатное.
Здравствуйте, Яков
Самый простой способ вызвать обработчик события, - просто обратиться к нему, как к любому другому макросу.
Ну и конечно, слово Private перед Sub надо убрать:
Код вызова примерно такой:
Второй простой способ вызвать обработчик этого события, - сделать вид, что мы изменили значения в диапазоне:
как-то так
для разных событий - по-разному.
А вообще, подход неправильный
Надо написать макрос, который будет запускаться и из обработчика, и вами напрямую.
PS: Вариант с RaiseEvent не сработает, - он в других случаях применяется.
Как можно (и можно ли) вызвать из макроса, подцепленного к кнопке, любое штатное событие книги/листа/приложения? Нужно как-то "пнуть" обработчик события. Если есть способ дёрнуть RaiseEvent'ом или ещё как свои собственные события - тож хорошо.
Хоть вопрос и не имеет никакого отношения к теме статьи, всё же предложу вариант:
эта метка не сохраняется при сохранении файла
потому, если на следующий день снова откроете файл, и запустите макрос - он сработает
можно метку прописывать в ячейку - заменив в коде Cells(1).ID на range("h2").value
Добрый день Игорь. воспользовался Вашим кодом для создания панелей инструментов. У меня возник вопрос : по нажатию на кнопку копировать диапазон данные копируются на лист2 и удаляется столбец. Как запретить повторное копирование так как после повторного нажатия кнопки удаляется столбец на новом листе.
Использую такой код :
' Кнопка копирование диапазона"
Sub Copy_Range()
On Error Resume Next
LastRow = Cells(Rows.Count, 1).End(xlUp).Row
Range(Cells(5, 1), Cells(LastRow, 5)).Copy Sheets("Лист2").Cells(5, 1) ' Копирование данных на лист2
Sheets("лист2").Columns("D:D").Delete Shift:=xlToLeft 'удаление столбца D
Здравствуйте, вот код который добавляет на ленту в надстройки кнопку:
Sub addinn1()
With Application.Toolbars(1).ToolbarButtons.Add(Button:=222)
.Name = "Кнопка"
.OnAction = "макрос1"
End With
End Sub
Какой вид будет иметь кнопка, зависит от ее id. Мне нужен список с описанием "id - кнопка". Помогите кто чем может!
Здравствуйте!
Создал панель инструментов с кнопкой "Отчеты". Мне нужно ,что бы по нажатии на кнопку "Отчеты" появлялся выпадающий список (кнопки)с надписями(5штук)
Вообще-то можно всё, просто Вы с этим ещё не работали.
Я тоже раньше старался придерживаться совместимости версий, но после того, как убедил руководство полностью перейти на Excel 2010, забыл о нужных только мне проверках. Кстати, некоторые вещи без этих проверок не будут корректно выполняться в обоих версиях: например, при создании условного форматирования.
Но я никогда не писал универсальных программ, - только под чётко поставленное ТЗ (мне время дорого и некогда ждать обратную связь).
Я делаю универсальные программы, которые должны работать во всех версиях Excel (начиная с 2003).
Кроме того, меню в некоторых моих программах формируется динамически (макросом).
Как это сделать в Excel 2007? Никак? вот то-то же.
(т.е. сделать-то можно, но кода будет очень много)
А оставлять поддержку только Excel 2010 (где можно программно формировать панель инструментов на ленте) - ещё рано,
очень много пользователей до сих пор сидят на Excel 2003-2007
К тому же, на мой взгляд, функционал важнее красивого меню.
Хотя, через год планирую перевести часть своих программ (где меню не динамические) на красивые менюшки.
Спасибо за информацию, начну изучать.
XML надо не в VBA добавлять, а в сам файл.
Меню проще сделать вручную, чем писать какой-то хитрый код.
Поищите в гугле Ribbon Editor - есть несколько хороших реализаций.
PS: Тут я вам вряд ли что могу подсказать, - сам ещё ни разу не делал «красивые» меню,
ибо в моих программах важнее совместимость с Excel 2003,
а XML можно добавить только в файлы формата Office 2007 (c 4-буквенным расширением)
Доброго времени суток!
Интересует вопрос использования в разработке кода xml (в данном случае для отображения больших кнопок). С разметкой я знаком, но никак не могу взять в толк, как добавить в VB код XML, можете задать направление для поиска решения моей проблемы?
Добрый!
Отличный сайт много интересных и нужных вещей. Спасибо.
Теперь вопрос: Панельки прикрутил все запускается отлично, но при каждом открытии Excel панельки создаются в одном и том же месте. Как сделать что они были расположены там и где все панели, что небыло необходимости постоянно их убирать в нужное место?
Очень рад,что обнаружил этот сайт.
Скопировал и запустил в лоб, ОТЛИЧНО.
Я уже думал, что от старой версии Excel пользовательские меню и кнопки маросов исчезли навсегда.
Буду посещать сайт узнавать больше. СПАСИБО.
Подскажите, пожалуйста, как сделать кнопки большого размера на ControlBar?
Спасибо за подсказку. Пожалуй, так и сделаю.
Здравствуйте, Максим.
К сожалению, я не знаю способа принудительно сделать перенос кнопок панели инструментов на другую строку.
Я бы посоветовал вам сделать группировку элементов панели - оно и удобнее, и выглядит лучше:
Здравстуйте, Игорь.
Спасибо за предоставленный код - очень помог в создании собственной надстройки.
Возник вопрос. Если контролов (кнопок, текстовых полей, полей ввода и тп) на разрабатываемой панели надстройки будет много, то все они вытягиваются в одну строку. Как переносить контролы на новую строку, чтобы не пришлось прибегать к кнопке скролинга на панели ">>" ?
Excel 2007.
Старайтесь не пользоваться китайской программой Office Tab, чтобы не было таких проблем как у меня! Она, как раз, управляет вкладками и лезет также в панели.
Снёс её и некоторые (к сожалению только некоторые) коды заработали, в том числе и приведённый вами код.
Спасибо за внимание! Вы оперативно отвели на моё письмо. Очень приятно!
Скажите, пожалуйста, есть ли код VBA для создания своей панели инструментоа в Excel 2010?!
Ни один приведённый здесь код не работает.
У меня просто не раегирует даже на CommandBars("Formatting").Visible = False
Наверное, в Excel 2010 сделать дто с помощью VBA просто не возможно.
Игорь,
Спасибо, за ответ. Я не программист, а простой пользователь.
Прошу прощения, что не нашел на сайте указанные материалы. Вы создали великолепный сайт. На нем очень много полезной информации, но найти нужное трудно.
Я так и не понял Вашу фразу "Хотя, достаточно один раз сформировать панель инструментов, и не удалять её программно при закрытии Excel - она никуда не денется, кнопки продолжат работать (при первом нажатии на кнопку, Excel сам откроет файл надстройки)".
Я взял ваш код вставил в свою надстройку, панель сформировалась, внес в неё свои макросы и удалил ненужный мне код для других кнопок. После закрытия excel панель не запоминается. Может я чего не правильно сделал. И существует возможность вставлять свои макросы в вашу настройку без работы в VBA. Но методом тыка я их не нашел))
Благодаря книги "Программирование на VBA в Microsoft Office 2010" (с.390) я нашел нужный мне код. Книга размещена на вашем сайте, за что отдельно спасибо.
Public Sub avf_panel()
Dim cbar1 As CommandBar
Dim cControll As CommandBarControl
Dim cId As Variant
Set cbar1 = CommandBars.Add(Name:="AVF")
With cbar1
.Enabled = True
.Visible = True
Set cControll = cbar1.Controls.Add(Type:=msoControlButton)
With cControll
.Caption = "Название кнопки"
.TooltipText = "Комментарий кнопки"
.Visible = True
.FaceId = 309 (номер иконки)
.OnAction = "Ваш макрос"
Чтобы создать новую кнопку нужно скопировать-вставить с Set по End With еще раз. Переименовать кнопки и макрос.
С уважением, AVF
AVF, вы не пробовали сначала поискать ответы у меня на сайте?
Если в 2007-м нужны КРАСИВЫЕ БОЛЬШИЕ КНОПКИ, то нужно использовать XML (соответственно, файл будет иметь расширение из 4 букв, и в Excel 2003 работать не будет)
Что мешает каждый раз запускать макрос формирования панели инструментов?
Я так и делаю всегда.
Хотя, достаточно один раз сформировать панель инструментов, и не удалять её программно при закрытии Excel - она никуда не денется, кнопки продолжат работать (при первом нажатии на кнопку, Excel сам откроет файл надстройки)
Игорь, спасибо все получилось.
Но возникла новая проблема. Как сделать так, чтобы настройка не терялась при закрытие - новом открытие excel? Чтобы каждый раз не запускать макрос?
Может сохранить настройку нев Xla, а в Personal.xlsb. Но тогда теряется смысл настройки((
Еще вопрос в excel 2003 можно создать свои кнопки про помощи встроенного редактора. В 2007 и далее этой функции нет. Многие формучане дружественных форумах подминали эту проблему и её решение только писать код в VBA. Причем это код "разный" (у каждого мастера свое кун-фу ;^)). Таким образом это решение не для всех. Вопрос: если создать кнопку+панель в 2003 excele, потом сохранить её в формате .xla и запустить в excel 2007, то будет ли она работать (находиться в закладке надстройки, иметь собственные рисунки кнопок + макросы)?
Добрый день,
Отличный сайт и великолепный Код.
Долго искал как сделать собственную настройку, и наконец все нашел. Спасибо Вам за это.
Вопрос: где можно посмотреть иконки для кнопок и их номера? Если заменить 271 на другое число измениться и иконка.
"Add_Control AddinMenu, ct_BUTTON, 271, "CreateBackup", "Create Backup and Save", , True"
Как использовать свою иконку?
Уважаемый EducatedFool (Игорь), благодарю за то, что поделились наработками по созданию надстроек.
Подскажите, пожалуйста, где можно почитать на пояснения по поводу порядка написания команд и пояснения к ним (фактически интересует построчное пояснение как Вы и написали в предыдущем комментарии.
ПРИМЕР
Add_Control AddinMenu, ct_BUTTON, 271, "НазваниеВашегоМакроса", "Надпись на кнопке", , True
Спасибо, с этим разобрался!
Помогите разобраться, как теперь "привязать" макрос к "дополнительным" макросам из выпадающего списка.
Пробовал решить вопрос по аналогии, но не получилось.
Очень просто.
За добавление кнопок на панель, и назначение им макросов, отвечают эти строки кода:
Чтобы назначить ваш макрос кнопке, добавьте в код надстройки такую строку:
(или замените одну из существующий строк)
Здравствуйте!
Подскажите, пожалуйста, как привязать макрос к созданной (с помощью Вашей надстройки) панели инструментов.
Спасибо.
Как при запуске поместить панель инструментов рядом с панелью "Стандартная"?
Надо задать значение свойства Position для панели инструментов.
В вашем случае Position = msoBarTop
Кроме того, не помешает последней строкой кода включить обновление экрана.
В итоге код функции будет выглядеть так:
Читайте также: