Вопрос

Поэтому я обнаружил, что PowerPoint 2007 действительно поддерживает обработчики событий на уровне приложений. Например Application.NewPresentation или даже Application.AfterNewPresentation

Это описано здесь http://msdn.microsoft.com/en-us/library/ff745073.aspx.

Но реальный вопрос, как мне это использовать? Где я их пользуюсь? Чтобы сказать вам мой сценарий, то, что я хочу, это вставить динамический текст в несколько текстовых ящиков. У меня есть код макроса, чтобы сделать это, и он работает точно так, как я хочу. Но мне нужен макрос, чтобы огонь один раз Новая презентация создана из шаблона POTM. Отказ И только на этом событии. Как и в Word 2007.

Где я начинаю? Я пытался просто создать Sub Subs, как это, и сохраняя его как файл POTM и открыть новую презентацию на основе этого шаблона. И ничего не произошло.

Private Sub App_NewPresentation(ByVal Pres As Presentation)
    MsgBox "Running!"
End Sub

Редактировать: можно открыть любой файл Office 2007 с редактором XML. Я использую пользовательский редактор пользовательского интерфейса для Microsoft Office и в том, что я добавляю туда службы Office 2007 Custom Ui.xml, следующую в руководстве, представленном здесь: http://www.pptalchemy.co.uk/powerpoint_auto_open_code.html.

Но я столкнулся с проблемами, когда PowerPoint создает новую презентацию на основе этого шаблона. Открытие шаблона в себе работает просто хорошо. Обработчик событий есть и код работает красиво. Но новая презентация основана на этом? Ни в коем случае обработчик тоже есть. Но он говорит, что не может найти макрос. Несмотря на то, что макрос в новой презентации, так как я могу открыть Visual Basic Editor и найти макрос, а затем запустить его. Это просто автопарт, который, похоже, работает так, как следует.

Это было полезно?

Решение

То Только Способ создания автоматического макроса в PowerPoint VBA - это иметь файл в качестве дополнения (.PPA или .PPAM - не .pptx / .pptm / .potm / etc). И способ создать это:

  1. Создайте классный модуль. Наверху (после любого Option XXX), помещатьPublic WithEvents App As Application а затем поставьте свою рутину выше этого.
  2. Создайте модуль любого имени и поставить:

    Dim X As New Class1
    Sub AutoOpen()
        Set X.App = Application
        ''# Code to create new presentation
    End Sub
    

Опять же, это не будет работать из ваших требований .potm. Еще один способ, которым вы можете рассмотреть, был обесценен, но он все еще работает, что является создание файла Wizard.

Другие советы

Макрос в презентации, который был создан, не имеет способа запустить, так как MACRO AUTO_OPEN работает только с добавками. Исходя из того, как вы это делаете, вам придется перезагрузить ленту, чтобы ударить событие в вашей новой презентации, которую вы хотите запустить.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top