Надстройка предназначена для автоматизации добавления кнопок запуска макроса на лист ExcelПоскольку макросы мне приходится писать очень часто, рисование кнопок их запуска отнимает достаточно много времени. Решением стало создание этой надстройки - теперь достаточно выделить диапазон ячеек на листе Excel, нажать комбинацию клавиш типа Alt + 1, - и через мгновение на листе создаётся зелёная кнопка с названием «Запуск», расположенная точно поверх ранее выделенных ячеек. Остаётся только назначить этой кнопке макрос, щелкнув по ней правой клавишей мыши. Пример кода VBA для создания кнопки: Sub ПримерИспользования() СоздатьКнопку Selection, vbGreen, "Обработать данные": End Sub End Sub Для вызова формы (где можно настроить текст и цвет будущей кнопки) предназначена комбинация клавиш Ctrl + Alt + Shift + B Код функции добавления кнопок на лист Excel: Function СоздатьКнопку(ByRef ra As Range, Optional ByVal ButtonColor As Long = 255, _ Optional ByVal ButtonName$ = "Запуск", Optional ByVal MacroName As String = "") ' Функция рисует автофигуру (прямоугольник) поверх диапазона ячеек ra ' и окрашивает созданную кнопку (с названием ) в цвет Button_color ' Созданной кнопке назначается макрос MacroName On Error Resume Next: Err.Clear w = ra.Width: h = ra.Height: l = ra.Left: t = ra.Top w = IIf(w >= 10, w, 50): h = IIf(h >= 10, h, 50) ' не создаём маленькие кнопки - минимум 10*10 ' добавляем кнопку на лист Dim sha As Shape: Set sha = ActiveSheet.Shapes.AddShape(msoShapeRoundedRectangle, l, t, w, h) With sha ' оформляем автофигуру .Fill.Visible = msoTrue: .Fill.Solid .Fill.ForeColor.RGB = ButtonColor: .Fill.Transparency = 0.3 .Fill.BackColor.RGB = vbWhite .Fill.TwoColorGradient msoGradientFromCenter, 2 ' градиентная заливка .Adjustments.item(1) = 0.23: .Placement = xlFreeFloating .OLEFormat.Object.PrintObject = False ' кнопки не выводятся на печать .Line.Weight = 0.25: .Line.ForeColor.RGB = vbBlack ' делаем тонкий черный контур With .TextFrame ' добавляем и форматируем текст .Characters.Text = ButtonName$ ' добавляем текст With .Characters.Font ' изменяем начертание текста .Size = IIf(h >= 16, 10, 8): .Bold = True: .Color = vbBlack: .Name = "Arial" ' цвет и шрифт End With .HorizontalAlignment = xlCenter: .VerticalAlignment = xlVAlignCenter End With .onaction = MacroName ' назначаем кнопке макрос (если он задан в параметрах) End With End Function
|
|||||||

Комментарии
Проверил - всё работает, файл скачивается.
Ссылка на вложение не работает.
Почему я не видел эту надстройку раньше)))
Отличная штука!
Спасибо!
Отправить комментарий