Как создать субботу в VBA, который выполняется при загрузке его корреспондента?
-
21-09-2019 - |
Вопрос
У меня есть подпрограмма в VBA, которая выполняется, когда мы открываем презентацию PowerPoint, но я хочу выполнить эту подставку, когда вместо этого загружается надстройка.
Как я могу это сделать?
Решение
Если я правильно вас понимаю, у вас есть дополнение, которое вы хотите запустить подкзадача существующей слайд-колоды только при загрузке добавления.
Если так, вот инструкции о том, как это сделать:
Создайте слайд-колоду, сохраните ее как «Presentation3.pptm» (макро-поддержка PPT за 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
Создайте дополнение сейчас. Создайте еще одну колоду, перейдите в VBE и поместите это в любой модуль:
Sub Auto_Open() Dim p As Presentation Set p = Presentations("Presentation3") Application.Run (p.Name & "!AddText") End Sub
Теперь сохраните это дополнение в качестве надстройки PowerPoint (.ppam). Установите и загрузите AddIn (попробуйте снова загрузить/загрузите, если он не запускается), и у вас должен быть создан текстовая коробка в активной презентации.
Обратите внимание в #2: Application.Run (p.Name & "!AddText")
. Анкет Название предварительного представления (включая расширение) и "!" С подпрограммой название требуется для запуска макроса в другой презентации.