PowerPoint автоматически заполняет фигуры - PullRequest
0 голосов
/ 28 мая 2019

My 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 голосов
/ 28 мая 2019

Я думаю, что вы путаете Shapes с отдельными элементами (узлами) SmartArt.

Smart Art - фактически единственная фигура со своими собственными встроенными элементами. Поэтому, когда i является вашим петлителем, вы должны смотреть на

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

Где 99 - номер вашей фигуры (хотя вам лучше обращаться к ней по имени).

...