Добрый день. Помогите решить вопрос. Есть несколько Фигур с разной заливкой. Мне нужно присвоить переменной цвет заливки Фигуры Так чтобы при нажатии на Фигуру (которой которой назначен макрос) выделенная область окрашивалась в цвет заливки самой Фигуры. Спасибо.
выделенная область окрашивалась в цвет заливки самой Фигуры.
Скрытый текст
Код
Sub Macro2()
Dim iColor As Long
iColor = ActiveSheet.Shapes(Application.Caller).Fill.ForeColor.RGB
Selection.Interior.Color = iColor
End Sub
Не копируйте макрос для каждой кнопки, а просто каждой кнопке присваивайте один и тот же макрос и он будет подхватывать нужный вам цвет с нажатой кнопки.
без всяких макросов 1. отмечаете фигуру (кнопку) 2. в окне Imediate пишете: ? Selection.Fill.ForeColor.RGB и жмете Enter в следующей строке видите цвет,, копируйте его и используйте как хотите и где хотите
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
Sub Macro2()
Selection.Interior.Color = ActiveSheet.Shapes(Application.Caller).Fill.ForeColor.RGB
' определить имя фигуры для кода
'MsgBox ActiveSheet.Shapes(Application.Caller).Name ' или
Debug.Print ActiveSheet.Shapes(Application.Caller).Name
If ActiveSheet.Shapes(Application.Caller).Name = "Rounded Rectangle 1" Then
Shell ("calc.exe")
ElseIf ActiveSheet.Shapes(Application.Caller).Name = "Rounded Rectangle 2" Then
Shell "notepad.exe", vbMaximizedFocus
End If
End Sub