Как получить единообразное имя фигуры при добавлении новых слайдов? - PullRequest
0 голосов
/ 11 ноября 2019

У меня есть макрос, который позволяет мне вставлять текст в текстовое поле на всех слайдах, основываясь на моем файле Excel. Проблема в том, что когда я вставляю новый слайд с заполнителем, формы в этом новом слайде переименовываются с другим номером, даже когда я называю их в мастер-слайде. Есть ли способ, чтобы фигуры сохраняли свое имя при вставке нового слайда?

Пример:

Мой код PPT VBA:

Slide.Shapes("Title 1").TextFrame.TextRange.Text = blablabla
Slide.Shapes("Subtitle 2").TextFrame.TextRange.Text = blablabla

В моем мастере слайдов, Я назвал свои фигуры «Заголовок 1» и «Подзаголовок 2» соответственно.

После выхода из мастер-слайдов я добавляю новый слайд (примечание: не дублирующий слайд). Однако стало «Заголовок 3» и «Подзаголовок 4». Нумерация будет отличаться.

Благодарим вас за совет о том, как сохранить имя таким же, когда мы добавляем новый слайд.

1 Ответ

0 голосов
/ 11 ноября 2019

Если вы хотите сделать это автоматически, вам нужно создать процедуру события. Сначала в VBE вы добавляете модуль класса, называете его clsAppEvents и добавляете код

' Class module clsAppEvents 
Option Explicit

Public WithEvents App As Application

Sub App_PresentationNewSlide(ByVal oSld As Slide)
  ' Add your code here e.g.
  oSld.Shapes(1).Name = "Title 1"
  oSld.Shapes(2).Name = "Subtitle 2"
End Sub

Затем в вашем Module1 добавьте это

' Module code
Option Explicit

Public oAppEvents As New clsAppEvents

Sub InitialiseApp()
    Set oAppEvents.App = Application
End Sub

Теперь, если вы запускаете InitialiseApp () (достаточно одного раза)) каждый раз, когда вы добавляете новый слайд, ваш Sub App_PresentationNewSlide будет выполняться. (В классе событий вы можете дополнительно определить другие процедуры обработки событий).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...