我正在为powerpoint开发vba中的一些功能。现在要测试我的解决方案,我需要在幻灯片上具有所有形状类型的powerpoint幻灯片。
他们中的一些人很容易创作:
https://msdn.microsoft.com/de-de/library/office/Ff744590.aspx
但是其他如type = msoOLEControlObject或= msoEmbeddedOLEObject或= msoplaceholder我不知道如何创建。但我需要所有不同的shape.types。
知道如何自动创建它们吗?
我试图用这个来做:
Sub CreateShapeType()
Dim slnr
slnr = ActiveWindow.Selection.SlideRange.SlideNumber
Set myDocument = ActivePresentation.Slides(slnr)
myDocument.Shapes.AddShape Type:=msoOLEControlObject, _
left:=100, top:=50, Width:=100, Height:=200
End Sub
即使有东西被创建 - 当我控制形状时,它们没有“msoOLEControlObject”类型。
使用循环进行自动创建将是完美的。请参阅此示例(它可以工作,但仅适用于所有自动形状):
Sub CreateAutoshapes()
Dim i As Integer
Dim slnr, t As Integer
Dim shp As Shape
slnr = ActiveWindow.Selection.SlideRange.SlideNumber
t = 10
For i = 1 To 137
Set shp = ActivePresentation.Slides(slnr).Shapes.AddShape(i, 100, t, 60, 60)
shp.TextFrame.TextRange.Characters.Text = i
t = t + 70
Next
' skip 138 - not supported
If CInt(Application.Version) >= 12 Then
For i = 139 To 183
Set shp = ActiveSheet.Shapes.AddShape(i, 100, t, 60, 60)
shp.TextFrame.TextRange.Characters.Text = i
t = t + 70
Next
End If
End Sub
知道如何创建所有不同的类型吗?
非常感谢你的帮助。
答案 0 :(得分:1)
每种形状类型都有特定的方法。 AddShape特定于AutoShapes。
查看其他方法,如AddOLEObject,AddPlaceholder,AddPicture,AddTable,AddSmartArt等,以添加其他形状类型。