我正在使用一个小的VBA脚本在后台应用一些文本。 该脚本可以在PowerPoint 2007和PowerPoint 2010上正常运行。 但是,在PowerPoint 2013中,设置Shape.Height和Shape.Width无效。 这是代码片段。 任何帮助,将不胜感激。 ...
提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供 中文繁体 英文版本 中英对照 版本,有任何建议请联系yoyou2525@163.com。
我想在if中使用形状的宽度作为条件。 我下面的代码是自动将数字添加到单元格范围内的形状上。
Sub numShapeMasqueD()
Dim shapeTemp As Shape
Dim masqueD As Range
Dim cpt As Integer
Dim row As Long, col As Long
Set masqueD = Range("h22:r31")
cpt = 1
For row = 1 To masqueD.Rows.Count
For col = 1 To masqueD.Columns.Count
For Each shapeTemp In ActiveSheet.Shapes
If Not Intersect(masqueD.Cells(row, col), shapeTemp.TopLeftCell) Is Nothing Then
shapeTemp.TextFrame.Characters.Text = cpt
cpt = cpt + 1
End If
Next shapeTemp
Next col
Next row
End Sub
我尝试使用shapeTemp.width
作为shapeTemp.width
中的条件。 我想做的是,如果shapeTemp的宽度低于12.97016,然后设置shapeTemp.TextFrame.Characters.Font = 8
。
我希望我能清楚地解释我的问题。
代替,
为什么不制作另一个变量并将其值设置为ShapeTemp.Width就像吉普车注释一样,您实际上需要声明shapeTemp。
Dim shapeTemp as Shape
Dim shapeWidth as Double
shapeWidth = shapeTemp.Width
If shapeWidth = 12.907016 then
shapeTemp.TextFrame.Characters.Font = 8
End If
您声明了局部变量shapeTemp
,但未将其设置为任何值。 您需要将shapeTemp
设置为某种值。 这是有关VBA中变量范围的更多信息:
https://support.microsoft.com/en-us/help/141693/scope-of-variables-in-visual-basic-for-applications
以下是有关如何设置shapeTemp
。
要创建新形状:
Set shpTemp = ActiveSheet.Shapes.AddConnector(msoConnectorStraight, 10, 10, 100, 100)
要检索shapes集合中已经存在的第一个形状:
Set shpTemp = ActiveSheet.Shapes(1)
您还可以将shpTemp设置为另一个现有形状,或者可以使用参数/参数将形状对象传递到过程中。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.