Панель инструментов в эксель 2007 где находится

Обновлено: 06.07.2024

По умолчанию в окне отображается семь постоянных вкладок: Главная, Вставка, Разметка страницы, Формулы, Данные, Рецензирование, Вид.

Для перехода к нужной вкладке достаточно щелкнуть по ее названию (имени).

Каждая вкладка связана с видом выполняемого действия. Например, вкладка Главная, которая открывается по умолчанию после запуска, содержит элементы, которые могут понадобиться на начальном этапе работы, когда необходимо набрать, отредактировать и отформатировать текст. Вкладка Разметка страницы предназначена для установки параметров страниц документов. Вкладка Вставка предназначена для вставки в документы различных объектов. И так далее.

Кроме того, можно отобразить еще одну вкладку: Разработчик.

  1. Щелкните по кнопке Microsoft Office
  2. Выберите команду Параметры Excel.
  3. Во вкладке Основные диалогового окна Параметры Excel установите соответствующий флажок (рис. 1.9).

На вкладке Разработчик собраны средства создания макросов и форм, а также функции для работы с XML .

Файлы и шаблоны предыдущих версий Excel могли содержать пользовательские панели инструментов. В этом случае при открытии таких файлов в Excel 2007 появляется еще одна постоянная вкладка – Надстройки (рис. 1.10).

Эта вкладка содержит элементы панелей инструментов, созданных в предыдущих версиях Excel . Каждая панель инструментов занимает отдельную строку ленты вкладки. Однако некоторые элементы, бывшие на панелях инструментов, в Excel 2007 могут отсутствовать.

Стандартный набор вкладок заменяется при переходе из режима создания документа в другой режим, например, Предварительный просмотр (рис. 1.11).

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

Например, при создании колонтитулов появляется соответствующая вкладка (рис. 1.12).


увеличить изображение
Рис. 1.12. Контекстная вкладка Работа с колонтитулами/Конструктор

В некоторых случаях появляется сразу несколько вкладок, например, при работе с диаграммами появляются три вкладки: Конструктор, Макет и Формат (рис. 1.13).


увеличить изображение
Рис. 1.13. Контекстные вкладки для работы с диаграмами

При снятии выделения или перемещении курсора контекстная вкладка автоматически скрывается.

Microsoft Excel содержит несколько элементов управления для листов диалогов, которые удобно использовать для выбора элементов из списка. Примерами элементов управления могут быть списки, поля со списком, счетчики и полосы прокрутки.

Дополнительные сведения об элементе управления формы в Excel см. в ActiveX формах и формах.

Дополнительные сведения

Ниже покажем, как использовать списки, поля со списком, счетчики и полосы прокрутки. В примерах используются те же список, ссылка на ячейку и функция Индекс.

Включить вкладку "Разработчик"

Чтобы использовать элементы управления формы Excel 2010 и более поздних версий, необходимо включить вкладку Разработчик. Для этого выполните указанные ниже действия.

параметры файла

Откройте вкладку Файл и выберите команду Параметры.

В правой области Основные вкладки выберите разработчик и нажмите кнопку ОК.

Чтобы использовать элементы управления формы Excel 2007, необходимо включить вкладку Разработчик. Для этого выполните указанные ниже действия.

Лента

Щелкните Популярные,выберите вкладкуПоказать вкладку "Разработчик" на ленте и нажмите кнопку ОК.

Настройка списка, ссылки на ячейку и индекса

Введите на новый таблицу следующие элементы в диапазоне H1:H20:

H1: ОльговСкие о-ва

H7 : Rocket Launcher

H18: набор инструментов

H20: жесткий диск

В ячейке A1 введите следующую формулу:

Пример списка

Чтобы добавить список в Excel 2007 и более поздних версиях, на вкладке Разработчик в группе Элементы управления нажмите кнопку Вставить, а затем в группе Элементы управления формы выберите элемент Форма списка (элемент управления).

элементы управления формы


Чтобы добавить список в Excel 2003 и более ранних версиях Excel, нажмите кнопку Список на панели инструментов Формы. Если панель инструментов Формы не отображается, найдите в меню Вид пункт Панели инструментов и выберите пункт Формы.

Щелкните место на листе, где должен отображаться левый верхний угол списка, и перетащите его в то место, где должен быть нижний правый угол списка. В этом примере создайте список для ячеек B2:E10.

свойство contrl

В группе Элементы управления нажмите кнопку Свойства.

В окне Формат объекта введите следующие данные и нажмите кнопку ОК.

Чтобы указать диапазон для списка, введите H1:H20 в поле Диапазон ввода.

Чтобы поместить число в ячейку G1 (в зависимости от того, какой элемент выбран в списке), введите G1 в поле Связь с ячейкой.

Примечание: Формула ИНДЕКС() использует значение в G1 для возврата правильного элемента списка.

Убедитесь,что в области Тип выделения выбран вариант Один.

Примечание: Параметры Multi и Extend полезны только при использовании процедуры Microsoft Visual Basic для приложений для возврата значений списка. Обратите внимание также на то, что при этом к списку добавляется объемный вид.

форматирование объекта

В списке должен отображаться список элементов. Чтобы использовать список, щелкните любую ячейку, чтобы он не был выбран. Если щелкнуть элемент в списке, ячейка G1 будет обновлена на число, которое указывает положение элемента, выбранного в списке. Формула ИНДЕКС в ячейке A1 использует это число для отображения имени элемента.

Пример "Поле со combo"

Чтобы добавить поле со полем со Excel 2007 и более поздних версий, на вкладке Разработчик нажмите кнопку Вставить ивыберите поле со полем со полем в области Элементы управления формы.

значок со combobox


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

place combobox

Щелкните место на листе, где должен отображаться левый верхний угол списка, а затем перетащите поле со списком в то место, где должен быть нижний правый угол списка. В этом примере создайте поле соbo, которое охватывает ячейки B2:E2.

форматирование

Щелкните правой кнопкой мыши поле со полем и выберите форматирование.

Введите следующую информацию и нажмите кнопку ОК.

Чтобы указать диапазон для списка, введите H1:H20 в поле Диапазон ввода.

Чтобы поместить число в ячейку G1 (в зависимости от того, какой элемент выбран в списке), введите G1 в поле Связь с ячейкой.

Примечание: Формула ИНДЕКС использует значение в G1 для возврата правильного элемента списка.

В поле Drop down lines (Вниз) введите 10. Эта запись определяет, сколько элементов будет отображаться перед использованием точки прокрутки для просмотра других элементов.

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

В поле со списком должен отображаться список элементов. Чтобы использовать поле со полем со ссылкой или полем со ссылкой, щелкните любую ячейку, чтобы объект не был выбран. При щелчке элемента в поле со списком или в поле со списком ячейка G1 обновляется на число, которое указывает на положение в списке выбранного элемента. Формула ИНДЕКС в ячейке A1 использует это число для отображения имени элемента.

Пример счетчика

Чтобы добавить счетчик в Excel 2007 и более поздних версиях, на вкладке Разработчик нажмите кнопку Вставить ив области Элементы управления формынажмите кнопку Счетчик.

счетчик


Чтобы добавить счетчик в Excel 2003 и более ранних версиях Excel, нажмите кнопку Счетчик на панели инструментов Формы.

Щелкните место, где должен отображаться левый верхний угол счетчика, и перетащите его в то место, где должен быть нижний правый угол счетчика. В этом примере создайте счетчик, который охватывает ячейки B2: B3.

счетчик управления форматом

Щелкните правой кнопкой мыши счетчик и выберите форматирование.

Введите следующую информацию и нажмите кнопку ОК.

В поле Текущее значение введите 1.

Это значение инициализирует счетчик, чтобы формула ИНДЕКС укачивает на первый элемент в списке.

В поле Минимальное значение введите 1.

Это значение ограничивает верхнюю часть счетчика первым элементом в списке.

В поле Максимальное значение введите 20.

Это число определяет максимальное количество записей в списке.

В поле Приращение введите 1.

Это значение управляет приращением текущего значения при счетчике.

поле ссылки на ячейку

Чтобы поместить число в ячейку G1 (в зависимости от того, какой элемент выбран в списке), введите G1 в поле Связь с ячейкой.

Щелкните любую ячейку, чтобы счетчик не был выбран. При нажатии на счетчик элемента управления вверх или вниз ячейка G1 обновляется на число, которое указывает текущее значение счетчика плюс или минус добавочная смена счетчика. Это число затем обновляет формулу ИНДЕКС в ячейке A1 для показа следующего или предыдущего элемента.

Значение счетчика не изменится, если текущее значение — 1, если щелкнуть вниз или если текущее значение 20 и при нажатии кнопки вверх.

Пример scroll bar

Чтобы добавить полоса прокрутки в Excel 2007 и более поздних версиях, на вкладке Разработчик нажмите кнопку Вставить ив области Элементы управления формы выберите элемент Полоса прокрутки.

scroll bar


Чтобы добавить в Excel 2003 и более ранних версиях Excel, нажмите кнопку Scroll Bar на панели инструментов Формы.

Управление форматом отсчета в виде слога

Щелкните правой кнопкой мыши прокрутку и выберите форматирование.

Введите следующую информацию и нажмите кнопку ОК.

В поле Текущее значение введите 1.

Это значение инициализирует ось прокрутки, чтобы формула ИНДЕКС укачивала на первый элемент в списке.

В поле Минимальное значение введите 1.

Это значение ограничивает верхнюю часть верхней части ручека первым элементом в списке.

В поле Максимальное значение введите 20. Это число определяет максимальное количество записей в списке.

В поле Приращение введите 1.

Это значение управляет тем, сколько чисел приращение текущего значения на панели прокрутки.

В поле Изменение страницы введите 5. Это значение управляет тем, насколько приращением будет текущее значение, если щелкнуть в окне прокрутки с обеих сторон окна прокрутки.

поле ссылки на ячейку

Чтобы поместить число в ячейку G1 (в зависимости от того, какой элемент выбран в списке), введите G1 в поле Связь с ячейкой.

Примечание: При желании не может быть затенение. К панели прокрутки будет добавлен трехмерный вид.

Щелкните любую ячейку, чтобы не выделить прокрутку. При нажатии на элемент управления прокрутки вверх или вниз ячейка G1 обновляется на число, которое указывает текущее значение крутки в плюс или минус добавочная смена крутки. Это число используется в формуле ИНДЕКС в ячейке A1 для показа элемента рядом с текущим элементом или перед этим. Вы также можете перетащить поле прокрутки, чтобы изменить значение, или щелкнуть в окне прокрутки с обеих сторон, чтобы приращение на 5 (значение изменения страницы). Прокрутка не изменится, если текущее значение — 1, если щелкнуть вниз или если текущее значение — 20 и вы щелкаете его вверх.


1. В приложениях Microsoft Office Word и Excel панель инструментов по умолчанию находится в верхней части окна. Если вы не видите ее на привычном месте, значит, она свернута. Тем не менее, даже в таком режиме названия вкладок продолжают отображаться. Щелкните левой кнопкой мыши по нужной вам вкладке, и панель инструментов отобразится. Когда выбор инструмента будет завершен, она снова скроется.

2. Для того чтобы панель инструментов не скрывалась каждый раз, кликните правой кнопкой мыши по видимой части панели. Развернется контекстное меню. Снимите маркер со строки «Свернуть ленту», кликнув по ней левой кнопкой мыши. Панель инструментов примет свой привычный вид. Если в программе настроена лента быстрого доступа, данную операцию можно выполнить и с ее помощью. Нажмите на кнопку со стрелкой правее от ленты и снимите маркер с поля «Свернуть ленту» в выпадающем меню.

3. Если вам необходимо вернуть панель инструментов в папках, откройте любую папку на компьютере. Кликните по видимой части панели правой кнопкой мыши и отметьте маркером те компоненты, которые должны отображаться в окне. Альтернативный способ: выберите в меню «Вид» пункт «Панели инструментов» и отметьте маркером в подменю те пункты, которые вам нужны. Строка меню в папках отображается всегда.

4. В том случае если панель инструментов исчезла из браузера, может быть два варианта: либо включен полноэкранный режим, либо проблема в настройках интернет-обозревателя. В первом случае нажмите на клавиатуре функциональную клавишу F11, вы вернетесь в обычный режим. Во втором случае подойдет способ, описанный в предыдущем шаге. Настройте отображение нужных панелей через клик правой кнопкой мыши или воспользуйтесь командами из меню «Вид».

5. Так как интерфейс в большинстве программ схож, описанные способы применимы практически во всех случаях. Если вы хотите добавить на стандартную панель инструментов дополнительные кнопки, воспользуйтесь расширенными настройками. Чаще всего они вызываются так же из меню «Вид».

Есть несколько причин, по которым панель инструментов может не появиться в Excel на вкладке НАДСТРОЙКИ

Причина : вы забыли разблокировать надстройку после скачивания с сайта

Когда может случиться: при первом запуске скачанной надстройки

Решение проблемы : перед запуском скачанного файла надстройки, необходимо:

  • найти скачанный файл надстройки в папке (обычно это папка «Загрузки»)
  • щелкнуть правой кнопкой мыши на файле - Свойства- ставим галочку Разблокировать- ОК
  • и только после этого запускать

Это связано с недавним изменением политики безопасности в приложениях Office (скачанные из интернета файлы с макросами, не будучи предварительно разблокированными, запускаются без макросов)

Причина : антивирус повредил файл надстройки при проверке

ЭТО НАИБОЛЕЕ ЧАСТО ВСТРЕЧАЮЩАЯСЯ ПРОБЛЕМА В 2018 - 2020 ГОДАХ
Даже если вам кажется, что у вас нет антивируса, наверняка он есть, — например, встроенный в систему Защитник Windows (он же Windows Defender)

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

ВАЖНО: убедитесь, что антивирус никак не реагирует на скачивание и запуск надстройки.
Если какое-то предупреждение от антивируса выскочило — с вероятностью 90%, антивирус повредил файл надстройки, и надстройка не запустится.

Причина : в настройках безопасности Excel заданы ограничения

Когда может случиться: в новых версиях Office такое иногда имеет место быть

Решение проблемы : нажимаем в меню Excel Файл — Параметры — Центр управления безопасностью, и потом справа кнопку Параметры центра управления безопасностью . .
В появившемся окне в левом столбце есть пункты Надёжные расположения и Надёжные документы.
По очереди заходим в каждый из этих разделов, и ставим галочки «Отключить все надёжные расположения» и «Отключить надёжные документы».
Теперь закрываем Excel, и пробуем снова запустить надстройку.
После этого Excel не будет считать надстройку ненадежной, только потому что она расположена не в той папке.

Причина : надстройка не запустилась вместе с Excel

Когда может случиться: при повторных запусках (когда до этого всё работало)

Решение проблемы : убедитесь, что надстройка запущена. Для этого, найдите файл надстройки в папке, и запустите его двойным щелчком.
Если надстройка запускается автоматически (включена опция автозапуска в О программе — Опции), убедитесь, что вы не перемещали и не переименовывали файл надстройки.

Причина : макросы в Excel отключены в режиме «без уведомлений»
Excel просто молча отключает все макросы во всех файлах.

Когда может случиться: при первом запуске скачанной надстройки
Встречается очень редко. По умолчению, макросы отключены «с уведомлением», т.е. Excel спрашивает, нужно ли включить макросы для каждого запускаемого файла с макросами.

Решение проблемы : нужно включить макросы в Excel
Нажимаем в меню Excel Файл — Параметры — Центр управления безопасностью, и потом справа кнопку Параметры центра управления безопасностью . .
В появившемся окне в левом столбце выбираем пункт Параметры макросов, и справа выбираем опцию «Включить все макросы»

Создаваемая панель инструментов

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

На панель можно добавлять как обычные кнопки, так и раскрывающиеся выпадающие списки, подменю, текстовые поля.

Формирование панели инструментов происходит при загрузке файла, при закрытии же его - созданная панель скрывается:

Основной код модуля:

Комментарии

Решение с кодировкой описано по этой ссылке

у меня английский 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
Кроме того, не помешает последней строкой кода включить обновление экрана.
В итоге код функции будет выглядеть так:

Читайте также: