2015-05-22 4 views
0

Я пытаюсь написать макрос, который запускается автоматически выполняется при открытии презентации PowerPoint моей в PowerPoint 2013. Согласно this article и this StackOverflow answer это может быть сделано с написанием подпрограммы VBA с именем «Auto_Open»:Как написать автоматический макрос в PowerPoint 2013?

Sub Auto_Open() 
    MsgBox ("Hello World!") 
End Sub 

Я думаю, это очень простой материал, но все же это не работает для меня. В Центре доверия я включил все макросы, а также «Доверять доступ ...» также отмечен.

Я использую PowerPoint 2013. Возможно ли, что Microsoft не поддерживает автоматические макросы в PowerPoint 2013 ? Я не нашел никакой информации об этом в Интернете, только для Word 2013.

+0

Вы можете найти [Начало работы с VBA в PowerPoint 2010] (https://msdn.microsoft.com/en-us/library/office/ee814734%28v=office.14%29.aspx?f=255&MSPPError = -2147217396) статья полезно. –

+0

Моя подпрограмма работает. Я могу запустить его вручную. Он просто не выполняется автоматически при открытии файла. – Zsolt

+0

У вас должно быть событие, чтобы обнаружить открытие, но я искал в PPT 2010, и я не нашел ожидаемого (что-то вроде Excel или Outlook), поэтому я начинаю сомневаться, что буду таким, как легко, как для других приложений .... – R3uK

ответ

0

Мне кажется, что нет простого способа автоматического запуска макросов в PowerPoint.

Существует возможность запуска макроса с использованием Auto_Open, но с очень ограниченными функциями.

1.Create * .pptm файл с кодом:

Sub Auto_Open() 
MsgBox "Hello"  
End Sub 

2.Save файл в качестве надстройки -> * .ppam

3.Open вы PowerPoint документ и добавить эту надстройку

Каждый раз, когда вы запускаете PowerPoint, он автоматически запускает эту надстройку. В надстройке работает Auto_Open :)

Описывая писать о «малой функциональности» я имел в виду (http://skp.mvps.org/ppafaq.htm#14):

Два макросы запускаются автоматически в надстройке. Auto_Open и Auto_Close. Auto_Open запускается при загрузке надстройки и Auto_Close запускается при выгрузке надстройки. Вы можете использовать их для предварительной обработки, создания пунктов меню, настройки обработчиков событий и т. Д. Или выполнения очистки после выхода.

1

Подпрограмма Auto_Open автоматически срабатывает при добавлении ADD-IN, содержащего ее, но одна и та же подпрограмма в обычном файле PowerPoint не запускается автоматически. Статья о mvps.org НЕ предлагает иного; речь идет о надстройке, в которой происходят события ловушек, а затем вы можете вызывать макросы, которые вы пишете, но опять же, это требует загрузки надстройки.

Надстройка может препятствовать открытию презентации и другим событиям, а также защищать код, проверяющий презентацию, чтобы определить, следует ли выполнять дальнейшую обработку или нет ... IOW, он может проверить, является ли это вашей презентацией или некоторый случайный (который он не должен касаться).

0

Пока Auto_Open не запускается в презентации PowerPoint, вы можете подделать его. Добавьте в презентацию часть CustomUI, затем используйте обратный вызов CustomUI OnLoad для запуска кода при открытии презентации. Часть CustomUI нуждается не только в тегах CustomUI.

Получить пользовательский редактор UI здесь: http://openxmldeveloper.org/articles/customuieditor.aspx

Откройте презентацию в редакторе пользовательского интерфейса.Вставьте часть CustomUI в меню Вставка:

Add a Custom UI part

Теперь введите простой код RibbonX, как это:

<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui" 
onLoad="MyOnloadProcedure" > 
</customUI> 

Теперь напишите ваши на открытой процедуре:

Sub MyOnloadProcedure() 
    MsgBox "Hello"  
End Sub 

Если у вас есть и это, и процедура Auto_Open в надстройке, сначала запускается Auto_Open.

Полное раскрытие информации: хотя я думал об использовании этого подхода и использовал его в Excel, я не сделал этого, пока не встретил его на веб-сайте PPT Alchemy: Run Code When PowerPoint Opens.