Страницы: 1
RSS
Изменение цвета выбранной фигуры на градиентную с помощью макроса
 
Как изменить градиентный цвет выбранной фигуры (Кнопка1) на белый с заменой белого шрифта на жирный черный.
При том чтобы, если выбирается другая фигура (например Кномпка2, Кнопка3...), Фигура (Кнопка1) должна принимать градиентный цвет с белым шрифтом. Пример во вложении.
Спасибо!
Изменено: GVKO - 08.09.2013 00:55:59
 
Всё очень просто: включите запись макросов, выполните описанные вами действия, - и получите готовый код.
(надеюсь, у вас не Excel 2007, который плохо пишет макросы)

А когда вы таким образом сделаете 2 макроса (раскрашивающий фигуру, и возвращающий её в исходное состояние), - мы уже поможем вас с кодом, который применяет первый макрос к нажатой кнопке, а второй - ко всем остальным кнопкам (если вам это нужно, конечно)

---------------
сейчас вот подумал, - макросы тут и не нужны
Обычно такие кнопки делают на прайс-листах, чтобы отображать различные категории товара
В этом случае можно (и нужно) обойтись гиперссылками: создаются 4 копии листа,
причем на каждом листе выделенная кнопка разная (вручную кнопки можно поменять местами)
Потом назначаем кнопкам гиперссылки (ведущие на соответствующие листы) - и получается меню как на сайте
(я, когда впервые увидел такой прайс, сразу полез код смотреть, - и очень удивился, когда его не обнаружил. Оказывается, в файле было 10 листов с абсолютно идентичными кнопками и шапками, - только выделенная кнопка на всех листах была разная, - а ярлычки листов были скрыты, - создавалось впечатление, что по нажатию разных кнопок макрос меняет данные на листе)
Изменено: EducatedFool - 08.09.2013 03:45:47
 
вариант
 
Добрый день. Совет очень хороший. Но листов может так получиться очень много. Поэтому хотелось бы, как-то реализовать подобное. Прилагаю файл с записанным макросом, для первой кнопки. Все остальные должны выполняться аналогично, применяя белый цвет и изменяя шрифт, при нажатии на них.
 
На работе 2003... Пишем один общий макрос и назначаем его всем кнопкам. Имя фигуры определяем при помощи Application.Caller
 
См. простой пример. Сначала выбираем желаемый цвет заливки, кликнув по ячейке из диапазона A1:D1, затем по фигуре, которую хотим закрасить. Шрифт по аналогии.
 
Александр, спасибо за файл. Но у меня выдает ошибку при нажатии на любую кнопку.
 
Код
1
2
3
4
5
6
7
8
Sub Test()
    With ActiveSheet.DrawingObjects("Rectangle 1").Characters
        .Text = "Мой текст"
        .Font.Name = "Times New Roman"
        .Font.FontStyle = "полужирный"
        .Font.Size = 14
    End With
End Sub

Остальное макрорекордером)
 
)Юрий, не обессудьте. И куда мне это добавить? Если можно подробнее. Макросы для меня дремучее царство) К сожалению. Спасибо
 
Это ПРОСТО пример, как обращаться к фигуре (в данном случае к прямоугольнику) и её содержимому))
 
Кстати, у меня файл Александра работает без ошибок.
 
А у меня 2010 - с ошибкой.
Выкинул Characters - заработало.

А вчера в файле из поста №4 2007 на все имена кнопок ругался. Пришлось переименовывать.
 
Я на 2007 проверял)
 
Добрый день. Что значит выкинул нул Characters - заработало? В коде н
Страницы: 1
Читают тему
Наверх
Loading...