Кто-нибудь понимает свойство SlideMaster объекта презентации Powerpoint?

#vba #powerpoint #object-model

#vba #powerpoint #объект-модель

Вопрос:

Я имею в виду конкретно версию 2016 года, но это также должно применяться к 2013 и 2010 годам.

—— Сводка TLDR

  • Можно ли использовать VBA для добавления нового образца слайдов, используя метод, который я не нашел?
  • Возможно ли использовать VBA для доступа к макетам образцов слайдов, отличным от первого, в объекте презентации, или для управления ими?
  • Я подозреваю, что ответ на оба вопроса «Нет» и что MS просто испортила отображение базовых объектов, но другие могут знать больше о программировании PPT, чем я.

—— Весь вопрос

Microsoft сочла PowerPoint недостойным записи макросов для lo этих многих версий (я думаю, что он был удален из памяти в 2003 или 2007 годах), поэтому оттуда нельзя получить никакой помощи.

Связанный элемент справки MSDN вызывает сожаление. В нем говорится, что свойство возвращает основной объект, хотя на данный момент это не имеет значения.

Страница поддержки Office описывает мастер слайдов здесь. Похоже, что макет слайда — это место, где находятся макеты слайдов презентации, предположительно, в свойстве CustomLayouts в SlideMaster, хотя интересно отметить, что только первые 9 из этих пользовательских макетов соответствуют тому, что вы видите в графическом интерфейсе. (Я насчитал 11 объектов CustomLayout в SlideMaster в новой пустой презентации.) Цифры меняются, если вы добавляете новые макеты, хотя два вертикальных текстовых макета, похоже, никогда не появляются в списке GUI. Это тоже не проблема.

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

Честно говоря, я считаю эту функциональность немного нарушенной, потому что, если вы сделаете это, а затем примените тему к новому образцу слайдов, вы получите третий образец слайдов; оригинал в разделе «Тема Office», второй в разделе «Пользовательский дизайн» и третий под названием темы, которую вы применили. Это тоже само по себе не является проблемой. (Хотя стоит отметить, что в презентации нет метода AddSlideMaster, что означает, что, похоже, это невозможно сделать с помощью VBA. Не то чтобы вы обязательно хотели этого, но если бы вы это сделали, вы не можете. Существует только метод .AddTitleMaster, который кажется бесполезным, поскольку, насколько я вижу, у всех презентаций есть TitleMaster, и если у презентации есть один, то этот метод выдаст ошибку в соответствии с документацией.)

Проблема в том, что объект презентации не имеет коллекции шаблонов слайдов. У него есть только одно свойство, SlideMaster, которое возвращает один объект Slide Master / Master.

Соответственно, я не вижу никакого способа, которым вы можете программно добавить новый слайд-мастер. И даже если вы использовали тот, который добавлен через графический интерфейс, вы, похоже, не можете получить доступ ни к одному образцу слайдов, кроме первого. И поэтому вы, похоже, не можете получить доступ, манипулировать или назначить какой-либо макет из любого образца слайдов, кроме первого, для отдельного слайда.

Я прав в этом предположении, или я что-то упускаю?

Я заранее выражаю благодарность, хотя это часто удаляется из вопросов. Не то, чтобы это привлекло много внимания; Я подозреваю, что в моем будущем может появиться еще один значок перекати-поля.

Комментарии:

1. Это подлинный вопрос и показывает исследовательские усилия. Не должно было быть отклонено.

Ответ №1:

Возможно, эта страница поможет лучше понять его —http://skp.mvps.org/2007/ppt003.htm

Комментарии:

1. Бинго. Это не на этой странице, а на странице, на которую она ссылается; вот эта: skp.mvps.org/designs.htm Естественно; вы вставляете новый образец слайдов, поэтому для MS имеет смысл называть их «Дизайнами» (eyeroll). Большое спасибо, вы сильно демистифицировали его.

2. Терминология Microsoft в этой области PowerPoint, откровенно говоря, беспорядочная! Пользовательский интерфейс ссылается на Slide Master на вкладке View и дизайны в других местах. После того, как в представлении главного слайда есть несколько основных элементов, каждый из которых содержит «родительский элемент» (кажется, никто не знает, как его назвать!) и один или несколько пользовательских макетов. Я думаю, что это, вероятно, сошло с рельсов, когда было введено несколько мастеров, и необходимо было сохранить обратную совместимость.

3. @JamieG; да, я думал о том же самом. Было бы не так плохо, если бы иерархия была лучше объяснена в документации CustomLayouts на MSDN, но на момент написания статьи это вообще не объясняется. ( msdn.microsoft.com/en-us/library/office/ff745764.aspx ) Похоже, что вы можете управлять объектами CustomLayout таким же образом либо с помощью объекта SlideMaster презентации, либо с помощью объекта SlideMaster дизайна… НО сначала вы должны знать, что объект Design (a) существует и (b) на самом деле означает «то, что мы называем slide master, когда вы добавляете его в графический интерфейс».