Кнопка для изменения числового формата ячейки
Как известно, для перехода в режим изменения формата ячейки необходимо или выполнить команду контекстного меню Формат ячеек, или на вкладке Главная в группе Ячейки нажать кнопку Формат и выбрать пункт Формат ячеек, или нажать сочетание клавиш Ctrl+1. Однако для изменения числового формата ячейки можно также воспользоваться специально созданной пользовательской панелью инструментов. Рассмотрим этот процесс подробнее.
Для реализации примера нам потребуется написать в редакторе VBA два кода: в модуле рабочего листа и в стандартном модуле. Код, помещаемый в модуль рабочего листа, выглядит следующим образом (листинг 2.40).
Листинг 2.40. Код в модуле рабочего листа
Sub Worksheet_Change(ByVal Target As Excel.Range)
Call UpdateToolbar
End Sub
Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
Call UpdateToolbar
End Sub
В стандартном модуле редактора VBA необходимо написать код, который приведен в листинге 2.41.
Листинг 2.41. Код в стандартном модуле
Sub FastChangeNumberFormat()
Dim bar As CommandBar
Dim button As CommandBarButton
' Удаление существующей панели инструментов (если она есть)
On Error Resume Next
CommandBars(«Числовой формат»).Delete
On Error GoTo 0
' Формирование новой панели
Set bar = CommandBars.Add
With bar
.Name = «Числовой формат»
.Visible = True
End With
' Создание кнопки
Set button = CommandBars(«Числовой формат»).Controls.Add _
(Type:=msoControlButton)
With button
.Caption = ""
.OnAction = «ChangeNumFormat»
.TooltipText = «Щелкните для изменения числового формата»
.Style = msoButtonCaption
End With
' Обновление созданной панели инструментов
Call UpdateToolbar
End Sub
Sub UpdateToolbar()
' Обновление панели инструментов (если она создана)
On Error Resume Next
' Изменение заголовка кнопки (на название формата выделенной ячейки)
CommandBars(«Числовой формат»).Controls(1).Caption = _
ActiveCell.NumberFormat
End Sub
Sub ChangeNumFormat()
' Отображение диалогового окна изменения формата ячейки
Application.Dialogs(xlDialogFormatNumber).Show
Call UpdateToolbar
End Sub
Теперь нужно запустить на выполнение макрос FastChangeNumberFormat (после написания кода он будет доступен в окне выбора макросов) – в результате на вкладке Надстройки появится одна кнопка. Название данной кнопки зависит от формата активной ячейки. При подведении к кнопке указателя мыши отобразится всплывающая подсказка Числовой формат: Щелкните для изменения числового формата. При нажатии данной кнопки откроется вкладка Число окна Формат ячеек. Формат активной ячейки изменяется в данном режиме по обычным правилам.
Следует отметить, что перейти в режим редактирования числового формата ячейки можно, запустив на выполнение макрос ChangeNumFormat – после написания приведенного выше кода он также будет доступен в окне выбора макросов.