在 PowerPoint 中单击时更新形状颜色的宏

问题描述 投票:0回答:1

我是 VB 新手,我从网上找到的几个不同的脚本中编译了我认为可能适合我的目的的内容。我正在尝试创建一个宏,该宏将在单击时切换形状的颜色。我已将下面的宏分配给一个形状,它应该通过单击执行。但是,当我点击时,什么也没有发生。我需要为形状命名一些具体的名称吗?还是VB语言有问题?

Sub ChangeShapeColour(ByRef oShp As Shape)
    Dim oSh As Shape
    ' IF the shape's .Fill.ForeColor.RGB = red color:
        If oSh.Fill.ForeColor.RGB = RGB(199, 70, 52) Then
    ' Change it to green:
        oSh.Fill.ForeColor.RGB = RGB(117, 156, 108)

        End If
        
    ' IF the shape's .Fill.ForeColor.RGB = green color:
        If oSh.Fill.ForeColor.RGB = RGB(117, 156, 108) Then
    ' Change it to red:
        oSh.Fill.ForeColor.RGB = RGB(199, 70, 52)
        
        End If


End Sub
vba powerpoint
1个回答
0
投票

VBA PowerPoint 以神秘的方式工作,但这应该可以:

Sub ChangeShapeColour(oShp As Shape)
With oShp.Fill
    If .ForeColor.RGB = RGB(199, 70, 52) Then
        .ForeColor.RGB = RGB(117, 156, 108)
    Else
        .ForeColor.RGB = RGB(199, 70, 52)
    End If
End With
End Sub
© www.soinside.com 2019 - 2024. All rights reserved.