令我惊讶的是,还没有人问过这个问题,也许人们在编程方面并不像我那么无能:
我想在 PowerPoint 中编写一个按钮,通过单击该按钮或在插入特定数字时更改颜色。
我有这个:
Dim clickCount As Integer
Sub ChangeButtonColor()
Dim btn As Shape
Set btn = ActivePresentation.Slides(1).Shapes("Button2") ' Button2 is my button
clickCount = clickCount + 1
Select Case clickCount
Case 1
btn.Fill.ForeColor.RGB = RGB(139, 0, 0) ' dark red
Case 2
btn.Fill.ForeColor.RGB = RGB(255, 0, 0) ' red
Case 3
btn.Fill.ForeColor.RGB = RGB(255, 165, 0) ' orange
Case 4
btn.Fill.ForeColor.RGB = RGB(255, 255, 0) ' yellow
Case 5
btn.Fill.ForeColor.RGB = RGB(0, 255, 0) ' green
Case Else
btn.Fill.Visible = msoFalse ' transparent fill
clickCount = 0 ' set clickCount back to 0
End Select
End Sub
有人可以帮助我并告诉我错误在哪里吗?在我看来,循环应该没问题,不是吗?
提前致谢!
我尝试用宏来实现。我认为没有其他方法,如果有请告诉我。
我已经在形状和交互式按钮中尝试过,但都不起作用。 Perplexity 还向我建议了一个包含 5 个案例且没有 else 案例的循环,但没有任何效果。
至少当我将宏分配给交互式按钮框架时,通过单击它会变色一秒钟,我什至不知道这是否正常。
如果我理解正确的话,应该是 clickCount 正确的东西?
我想您正在使用 ActiveX-Command 按钮。
那么你不能直接使用该形状 - 但可以使用它的 OLE 组件
Sub ChangeButtonColor()
Dim btn As CommandButton
Set btn = ActivePresentation.Slides(1).Shapes("Button2").OLEFormat.Object
clickCount = clickCount + 1
Select Case clickCount
Case 1
btn.ForeColor = RGB(139, 0, 0) ' dark red
Case 2
btn.ForeColor = RGB(255, 0, 0) ' red
Case 3
btn.ForeColor = RGB(255, 165, 0) ' orange
Case 4
btn.ForeColor = RGB(255, 255, 0) ' yellow
Case 5
btn.ForeColor = RGB(0, 255, 0) ' green
Case Else
btn.ForeColor = msoFalse ' transparent fill
clickCount = 0 ' set clickCount back to 0
End Select
End Sub