Sub CreatePanel() Dim i As Integer On Error Resume Nex...➤ MyBook

Цитата из книги «Excel. Трюки и эффекты»

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
14 декабря 2014

Поделиться