添加新幻灯片时如何获得一致的形状名称?
How to get consistent shape name when adding new slides?
我有一个宏,可以根据我的 excel 文件在所有幻灯片的文本框中插入文本。问题是,当我插入一张带有占位符的新幻灯片时,新幻灯片中的形状被重命名为不同的数字,即使我在幻灯片母版中命名它们也是如此。插入新幻灯片时,有没有办法让形状保留其名称?
示例:
我的PPTVBA代码:
Slide.Shapes("Title 1").TextFrame.TextRange.Text = blablabla
Slide.Shapes("Subtitle 2").TextFrame.TextRange.Text = blablabla
在我的幻灯片母版中,我分别将形状命名为 "Title 1" 和 "Subtitle 2"。
退出幻灯片母版后,我添加了一张新幻灯片(注意:不是复制幻灯片)。然而,它变成了"Title 3"和"Subtitle 4"。编号会有所不同。
感谢您就如何在我们添加新幻灯片时保持名称不变提出建议。
如果您想自动执行此操作,则需要创建事件过程。首先在 VBE 中添加一个 class 模块,将其命名为 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 都会执行。 (在事件 class 中,您也可以进一步定义其他事件过程)。
我有一个宏,可以根据我的 excel 文件在所有幻灯片的文本框中插入文本。问题是,当我插入一张带有占位符的新幻灯片时,新幻灯片中的形状被重命名为不同的数字,即使我在幻灯片母版中命名它们也是如此。插入新幻灯片时,有没有办法让形状保留其名称?
示例:
我的PPTVBA代码:
Slide.Shapes("Title 1").TextFrame.TextRange.Text = blablabla
Slide.Shapes("Subtitle 2").TextFrame.TextRange.Text = blablabla
在我的幻灯片母版中,我分别将形状命名为 "Title 1" 和 "Subtitle 2"。
退出幻灯片母版后,我添加了一张新幻灯片(注意:不是复制幻灯片)。然而,它变成了"Title 3"和"Subtitle 4"。编号会有所不同。
感谢您就如何在我们添加新幻灯片时保持名称不变提出建议。
如果您想自动执行此操作,则需要创建事件过程。首先在 VBE 中添加一个 class 模块,将其命名为 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 都会执行。 (在事件 class 中,您也可以进一步定义其他事件过程)。