如何在给定条件下用颜色填充形状

时间:2014-11-16 13:50:03

标签: vba powerpoint

我是Powerpoint VBA的新手,与excel VBA完全不同。我可以用excel但不是powerpoint来做,需要一些帮助。我需要在文本框中输入分数。之后按下按钮,形状将根据分数值填充颜色。分数越高,越多的形状就会填满。以下是我的代码:

Sub AddShape()   
Dim counter As Integer  
Dim TopValue As Integer  
TopValue = 500  
For counter = 1 To 5  
Set myDocument = ActivePresentation.Slides(2)  
With myDocument.Shapes.AddShape(Type:=msoShapeRectangle, Left:=144, _
Top:=TopValue, Width:=72, Height:=5)  
    .Name = "Rectangle" & counter  
    .Fill.Visible = msoFalse  
    .Line.DashStyle = msoLineSolid  
End With  
TopValue = TopValue - 50  
Next counter  
Dim tshape As Shape  
Set tshape = ActiveWindow.Selection.SlideRange.Shapes.AddOLEObject(Left:=850, Top:=100, 
Width:=90, Height:=40, ClassName:="Forms.TextBox.1", Link:=msoFalse)  
End Sub  

Private Sub CommandButton1_Click()  
If CInt(TextBox1.Text) > 0 And CInt(TextBox1.Text) < 11 Then  
ActivePresentation.Slides(2).Shapes("Rectangle1").Fill.ForeColor.RGB = RGB(255, 0, 0)  
End If  
End Sub  

Private Sub TextBox1_Change()  
Me.TextBox1.SpecialEffect = fmSpecialEffectFlat  
End Sub  

Private Sub CommandButton1_Click中的代码看不到工作......请指教。我得到了迅速的运行错误&#39; 424&#39;所需对象。由于以上所有代码均为谷歌搜索直接复制,因此特定代码表示赞赏。我没有太多的vba powerpoint知识。 非常感谢你。

1 个答案:

答案 0 :(得分:0)

您需要访问OLE对象及其属性,与在幻灯片上处理常规形状的方式略有不同。

使用

代替TextBox1.Text

ActivePresentation.Slides(2).Shapes( “TextBox1中”)。OLEFormat.Object.Text