VBA PowerPoint 创建所有类型的形状
VBA PowerPoint create all type of shapes
我正在 vba 中为 powerpoint 开发一些功能。现在要测试我的解决方案,我需要幻灯片上包含所有形状类型的 powerpoint 幻灯片。
此处列出的其中一些很容易创建:
https://msdn.microsoft.com/de-de/library/office/Ff744590.aspx
但是其他类型,例如 =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
知道如何创建所有不同的类型吗?
非常感谢您的帮助。
每种形状类型都有特定的方法。 AddShape 特定于自选图形。
查看其他方法,如 AddOLEObject、AddPlaceholder、AddPicture、AddTable、AddSmartArt 等以添加其他形状类型。
我正在 vba 中为 powerpoint 开发一些功能。现在要测试我的解决方案,我需要幻灯片上包含所有形状类型的 powerpoint 幻灯片。
此处列出的其中一些很容易创建:
https://msdn.microsoft.com/de-de/library/office/Ff744590.aspx
但是其他类型,例如 =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
知道如何创建所有不同的类型吗?
非常感谢您的帮助。
每种形状类型都有特定的方法。 AddShape 特定于自选图形。
查看其他方法,如 AddOLEObject、AddPlaceholder、AddPicture、AddTable、AddSmartArt 等以添加其他形状类型。