我是 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 以神秘的方式工作,但这应该可以:
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