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 等以添加其他形状类型。