如何在加载其对应的加载项时执行的VBA中创建Sub?

时间:2010-02-19 12:44:07

标签: vba add-in powerpoint powerpoint-vba

我在VBA中有一个子程序,当我们打开一个PowerPoint演示文稿时执行,但我想在加载一个加载项时执行该子程序。

我该怎么做?

1 个答案:

答案 0 :(得分:1)

如果我正确理解你,你有一个加载项,你只想在加载插件时运行现有幻灯片的子程序。

如果是这样,以下是如何执行此操作的说明:

  1. 创建幻灯片,将其另存为 “Presentation3.pptm”(启用宏 PPT for 2007)。打开VBE并放入 在以下代码中:

    Sub AddText()
    Dim p As Presentation
    Set p = ActivePresentation
    Dim sh As Shape
    Set sh = p.Slides(1).Shapes.AddTextbox(msoTextOrientationHorizontal, 100, 100, 100, 100)
    sh.TextFrame.TextRange.Text = "hello there"
    End Sub
    
  2. 立即创建加载项。创建另一个 甲板,去VBE并把它放进去 任何模块:

    Sub Auto_Open()
    Dim p As Presentation
    Set p = Presentations("Presentation3")
    Application.Run (p.Name & "!AddText")
    End Sub
    
  3. 现在将此加载项另存为PowerPoint 加载项(.ppam)。安装并加载 addin(尝试卸载/再次加载,如果它 不会触发)你应该有 在活动状态上创建的文本框 介绍

  4. 注意#2:Application.Run (p.Name & "!AddText")。演示名称(包括扩展名)和“!”使用子例程的名称是在另一个演示文稿中运行宏。