PowerPoint自动填充形状

时间:2019-05-28 06:23:05

标签: vba powerpoint-vba shapes

我的PowerPoint有一个时间表,我使用“ SmartArt”和Shapes创建了自己的时间表。现在,我希望如果我编辑第一个日期,此时间轴中的所有形状都将自动填充日期。

在图片中您可以看到我的时间轴。enter image description here

我对PowerPoint VBA完全陌生,所以我什至不知道如何调用此宏。

我会这样写马克罗:

Sub Fill_Shapes()
    Dim StartDate As Date
    Dim myShape As Object

    Set myShape = ActiveSlide.Shapes(1)
    StartDate = myShape.Text

    For i = 2 To 14
        Set myShape = ActiveSlide.Shapes(i)
        With Application.Presentations(1).Slides(3).Shapes(i).TextFrame.TextRange
            .Text = StartDate  + 15
        End With
        StartDate = myShape.Text
    Next
End If

所以我的两个问题是,如果我将日期填充为1号形状(红色箭头左侧),怎么调用宏,我的宏甚至可以按照我写的方式工作?

1 个答案:

答案 0 :(得分:0)

我认为您是将Shape与SmartArt的各个元素(节点)混淆了。

Smart Art实际上是具有其自身内置元素的单一形状。因此,以 i 为您的循环播放器,您应该查看

With Application.Presentations(1).Slides(3).Shapes(99).SmartArt.AllNodes.Item(i).TextFrame2.TextRange

99 是形状的编号(尽管最好用名称来指代它)。