ОК, так что, во-первых, потому что вы пытаетесь изменить цвет выбранной формы, это означает, что вы находитесь в нормальном (редактирование) точки зрения, а не слайд-шоу , Во-вторых, кнопки или фигуры ActiveX с действиями для запуска макросов можно щелкнуть только в режиме слайд-шоу. Таким образом, единственный вариант, который у вас есть для «кнопки» в обычном режиме, - использовать возможности расширения ленты в Office. Вам нужно добавить XML для кнопки в customUI вашего файла PowerPoint и создать связанный макрос для его запуска. Например, добавьте этот XML в файл с помощью CustomUI Editor:
// Fluent UI customisation to add a single button to the PowerPoint ribbon //
// Written by Jamie Garroch of YOUpresent Ltd. http://youpresent.co.uk //
<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui">
<ribbon>
<tabs>
<tab id="tabMyTab" label="My Tab">
<group id="grpMyGroup" label="My Group">
<button id="btnMyButton" label="My Button" onAction="MyMacro"/>
</group>
</tab>
</tabs>
</ribbon>
</customUI>
... затем закройте файл в редакторе CustomUI и открыть в PowerPoint. Добавьте макрос:
' PowerPoint macro to change the fill colour of a single selected shape
' Written by Jamie Garroch of YOUpresent Ltd. http://youpresent.co.uk
Public Sub MyMacro(control As IRibbonControl)
With ActiveWindow.Selection
If .Type = ppSelectionShapes Then
If .ShapeRange.Count = 1 Then
If .ShapeRange.Type = msoAutoShape Then
.ShapeRange.Fill.ForeColor.RGB = RGB(255, 0, 0)
End If
End If
End If
End With
End Sub
Теперь при нажатии My Button в пользовательской вкладке My Tab, если есть один Выбранная форма типа автофигуры на слайде зрения, то цвет заливки изменится к красному.