#vba #powerpoint
Вопрос:
Я не вижу в объектной модели PowerPoint никаких методов для добавления одного из встроенных значков PowerPoint. Я вижу возможность добавлять встроенные фигуры и изображения, но не значки?
Как бы вы это сделали? Было бы лучше просто сохранить слайд со значками, которые я хочу использовать, где-нибудь и просто скопировать его со слайда?
Комментарии:
1. >>> Было бы лучше просто иметь слайд со значками, которые я хочу использовать, или сохранить значки в определенной папке в формате изображения, который может вставить PPT.
2. Похоже, что при превращении PPTM (макрос PowerPoint включен) в PPAM (надстройка PowerPoint) я не могу сохранить их с помощью слайдов и, похоже, не могу ссылаться на них в VBA.
3. Правильно; PPTM может содержать слайды, но PPAM, сохраненный из вашего PPTM, включает только содержимое VBA, ни один из слайдов/шаблонов/макетов/по умолчанию. Вы можете распространять как PPAM, так и PPTX с необходимыми значками. Немного дополнительного кода в PPAM может вернуть путь к папке, в которой установлен PPAM, и затем вы можете открыть PPTX оттуда.
4. Спасибо @SteveRindsberg. Я думаю, что, поскольку в нашей организации есть сайт SharePoint Online, я просто сохраню файл PPTX на этом сайте и просто сошлюсь на этот файл. Из некоторых тестов видно, что я могу использовать URI Интернета вместо локальных путей к файлам для вставки слайдов и других объектов на слайды.
Ответ №1:
Похоже, что при дальнейшем рассмотрении проблемы PowerPoint не имеет возможности вставлять встроенные значки с помощью VBA. Кроме того, при создании файла PPAM из PPTM вы теряете все слайды, шаблоны, макеты и т.д.
Лучший способ вставить слайды или объекты на слайды-это просто создать другой файл PPTX и сохранить его в SharePoint, на общем диске или просто распространить файл с вашей надстройкой, чтобы вы могли ссылаться на слайды и объекты на слайдах в вашей надстройке.
Слайды.Метод InsertFromFile требует имени файла и индекса. Имя файла представляет собой строку, и хотя в примере показан локальный ресурс, который я протестировал, и он также работает с URI Интернета (в частности, попробовал ресурс SharePoint, но при необходимости я мог бы провести дальнейшее тестирование).