Программно создать макет PowerPoint с помощью VBA?

Я создаю макрос Excel в VBA, который будет брать данные из строк и заполнять PowerPoint, используя эти данные. Я создал макет текстовых полей на слайде, который я хотел бы применить к каждому новому созданному слайду, но мне нужно сделать это без шаблона для него. Проблема с шаблонами заключается в том, что мне нужно, чтобы каждый пользователь, который хочет использовать это, установил шаблон. Я попытался сохранить макет на скрытом слайде и вставить его в презентацию, но когда я это сделаю, макет не останется прежним (все они сложены друг на друга), и они не сохраняют свою функцию как текст коробка. Что было бы правильным способом сделать это?


person kfriede    schedule 17.07.2014    source источник


Ответы (2)


Проблема с шаблонами заключается в том, что мне нужно, чтобы каждый пользователь, который хочет использовать это, установил шаблон.

Не совсем. Хотя с точки зрения производительности может быть предпочтительно сохранить шаблон локально, вы должны иметь возможность использовать шаблон из общего / сетевого расположения.

Будет ли такой подход работать?

Если нет, покажите код, который вы используете для копирования слайда. Предположительно, если вы определили собственный макет в главном макете презентации, копирование / вставка должно работать. Я тестировал это с текстовыми полями и текстовыми заполнителями.

person David Zemens    schedule 17.07.2014
comment
Я обошел эту проблему, изменив требования, чтобы больше не требовать возможности редактирования. Макет теперь создается и заполняется на скрытом листе Excel и вставляется в PPT как изображение. Спасибо за ваш ответ. - person kfriede; 18.07.2014

Эта точная проблема была в конечном итоге решена путем сохранения объектов формы на скрытом листе в Excel, заполнения их с помощью VBA и последующего использования следующего кода для вставки в слайд:

Sheets("template").Activate
Sheets("template").Shapes("myShape").Copy
activeSlide.Shapes.PasteSpecial(DataType:=ppPasteDefault).Select

Это оставляет их как объекты формы и редактируемые в PowerPoint.

Обратите внимание, что в целом рекомендуется избегать операторов Activate и Select. Этот код не использовался в конечном продукте и служит только для справки.

person kfriede    schedule 21.07.2014