Книга: Excel. Трюки и эффекты
Добавление команды «Очистить все, кроме формул»
Добавление команды «Очистить все, кроме формул»
Итак, добавим на вкладку Надстройки пользовательскую команду Очистить все, кроме формул. Кроме того, для удобства работы назначим данной команде сочетание клавиш Ctrl+Shift+C.
Для реализации поставленной задачи необходимо в стандартном модуле редактора VBA написать код, который выглядит следующим образом (листинг 3.103).
Листинг 3.103. Команда «Очистить все, кроме формул»
Sub AddMenuItem()
Dim cbrpMenu As CommandBarPopup
' Удаление аналогичной команды (при ее наличии)
Call DeleteMenuItem
' Получение доступа к меню «Сервис»
Set cbrpMenu = CommandBars(1).FindControl(ID:=30007)
If cbrpMenu Is Nothing Then
' Не удалось получить доступ
MsgBox «Невозможно добавить элемент.»
Exit Sub
Else
' Добавление новой команды в меню
With cbrpMenu.Controls.Add(Type:=msoControlButton)
' Название команды
.Caption = «Очистить в&се, кроме формул»
' Значок
.FaceId = 348
' Сочетание клавиш (только надпись на кнопке)
.ShortcutText = «Ctrl+Shift+C»
' Сопоставленный макрос
.OnAction = «ExecuteCommand»
' Добавление разделителя перед командой
.BeginGroup = True
End With
End If
' Сопоставление с макросом сочетания клавиш Ctrl+Shift+C
Application.MacroOptions _
Macro:="ExecuteCommand", _
HasShortcutKey:=True, _
ShortcutKey:="C"
End Sub
Sub ExecuteCommand()
' Очистка содержимого всех ячеек (кроме формул)
On Error Resume Next
Cells.SpecialCells(xlCellTypeConstants, 23).ClearContents
End Sub
Sub DeleteMenuItem()
' Удаление команды из меню
On Error Resume Next
CommandBars(1).FindControl(ID:=30007). _
Controls(«Очистить в&се, кроме формул»).Delete
End Sub
В результате написания кода будут созданы три макроса: AddMenuItem (добавление команды Очистить все, кроме формул на вкладку Надстройки), DeleteMenultem (удаление созданной команды) и ExecuteCommand (макрос запускается при выполнении команды).
Новая команда на вкладке Надстройки показана на рис. 3.41.
При выполнении данной команды из ячеек текущего рабочего листа будет удалена вся информация, за исключением формул. Следует отметить, что данную операцию можно выполнять и без помощи команды Очистить все, кроме формул – для этого достаточно запустить макрос ExecuteCommand.
Рис. 3.41. Новая команда на вкладке Надстройки
Чтобы удалить команды Очистить все, кроме формул, нужно выполнить макрос DeleteMenuItem. Можно также щелкнуть на ней правой кнопкой мыши и в открывшемся контекстном меню выбрать команду Удалить настраиваемую команду.
- Ничего, кроме правды: поведение потребителей
- Профессиональная терминология не всегда уместна
- 6.3. Добавление фоновой музыки
- 2. Визуальный язык знают все Жест с ручкой в руках
- Домашняя мастерская: вы всегда на работе
- Программируя Вселенную. Квантовый компьютер и будущее науки
- Команды и формирование культуры по инициативе сверху
- Добавление, изменение и удаление элементов списка
- Добавление, изменение и удаление столбцов списка
- Добавление и изменение представления списка
- Добавление документов
- Добавление рисунков