Читаем Excel. Трюки и эффекты полностью

Листинг 3.102. Создание панели со списком

Sub CreatePanel()

Dim i As Integer

On Error Resume Next

' Удаление одноименной панели (если есть)

CommandBars(«Список месяцев»).Delete

On Error GoTo 0

' Создание панели «Список месяцев»

With CommandBars.Add

.Name = «Список месяцев»

' Создание списка месяцев

With .Controls.Add(Type:=msoControlDropdown)

' Настройка (имя, макрос, стиль)

.Caption = «DateDD»

.OnAction = «SetMonth»

.Style = msoButtonAutomatic

' Добавление в список названий месяцев

For i = 1 To 12

.AddItem Format(DateSerial(1, i, 1), «mmmm»)

Next i

' Выделение первого месяца

.ListIndex = 1

End With

' Показываем созданную панель

.Visible = True

End With

End Sub

Sub SetMonth()

' Перенос названия выделенного месяца в ячейку

On Error Resume Next

With CommandBars(«Список месяцев»).Controls(«DateDD»)

ActiveCell.Value = .List(.ListIndex)

End With

End Sub

В результате написания данного кода будут созданы два макроса: CreatePanel и SetMonth. Первый предназначен для создания панели инструментов с раскрывающимся списком (рис. 3.40), а второй – для помещения выбранной позиции списка в активную ячейку рабочего листа.

Рис. 3.40. Созданный раскрывающийся список


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

Добавление команды на вкладку

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

Добавление команды «Очистить все, кроме формул»

Итак, добавим на вкладку Надстройки пользовательскую команду Очистить все, кроме формул. Кроме того, для удобства работы назначим данной команде сочетание клавиш Ctrl+Shift+C.

Для реализации поставленной задачи необходимо в стандартном модуле редактора VBA написать код, который выглядит следующим образом (листинг 3.103).

Перейти на страницу:

Похожие книги

1С: Бухгалтерия 8 с нуля
1С: Бухгалтерия 8 с нуля

Книга содержит полное описание приемов и методов работы с программой 1С:Бухгалтерия 8. Рассматривается автоматизация всех основных участков бухгалтерии: учет наличных и безналичных денежных средств, основных средств и НМА, прихода и расхода товарно-материальных ценностей, зарплаты, производства. Описано, как вводить исходные данные, заполнять справочники и каталоги, работать с первичными документами, проводить их по учету, формировать разнообразные отчеты, выводить данные на печать, настраивать программу и использовать ее сервисные функции. Каждый урок содержит подробное описание рассматриваемой темы с детальным разбором и иллюстрированием всех этапов.Для широкого круга пользователей.

Алексей Анатольевич Гладкий

Программирование, программы, базы данных / Программное обеспечение / Бухучет и аудит / Финансы и бизнес / Книги по IT / Словари и Энциклопедии
Эффективное использование C++. 55 верных способов улучшить структуру и код ваших программ
Эффективное использование C++. 55 верных способов улучшить структуру и код ваших программ

Эта книга представляет собой перевод третьего издания американского бестселлера Effective C++ и является руководством по грамотному использованию языка C++. Она поможет сделать ваши программы более понятными, простыми в сопровождении и эффективными. Помимо материала, описывающего общую стратегию проектирования, книга включает в себя главы по программированию с применением шаблонов и по управлению ресурсами, а также множество советов, которые позволят усовершенствовать ваши программы и сделать работу более интересной и творческой. Книга также включает новый материал по принципам обработки исключений, паттернам проектирования и библиотечным средствам.Издание ориентировано на программистов, знакомых с основами C++ и имеющих навыки его практического применения.

Скотт Майерс , Скотт Мейерс

Программирование, программы, базы данных / Программирование / Книги по IT