VBA для Powerpoint: измените слайд в одной Powerpoint, нажав кнопку в другой - PullRequest
0 голосов
/ 29 января 2020

Я новичок в VBA.

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

Заранее спасибо за любую помощь, Холли

Ответы [ 2 ]

1 голос
/ 29 января 2020

PowerPoint имеет коллекцию презентаций, которая содержит все открытые в настоящее время презентации. Вы можете получить ссылку на любой из них через Презентации («имя»), где «имя» - это имя файла презентации, без расширения.

Итак ... при условии, что у вас открыто три презентации: a.pptx, b.pptx, c .pptx, вы можете сделать что-то вроде этого:

Sub SlideChange()
    With Presentations("c")
        .SlideShowWindow.View.GotoSlide (3)
    End With
End Sub

Если вы Запустите выше в любой из презентаций, это изменит окно слайд-шоу, отображающее презентацию c на третий слайд.

1 голос
/ 29 января 2020

VBA использует объектную модель, представляющую собой огромную иерархию атрибутов и функций, представляющих приложение. Вы можете использовать эту модель для просмотра и обновления атрибутов, чтобы получить текст, изменить размер и изменить приложение. Вы должны посмотреть на некоторые учебники, чтобы начать. При редактировании кода вы можете нажать F2, чтобы увидеть и изучить эту объектную модель. Вы можете нажать F8 для построчного запуска кода (режим отладки) и посмотреть, что происходит. На ваш вопрос вы можете получить доступ к открытым презентациям в объекте application.presentations (https://docs.microsoft.com/en-us/office/vba/api/powerpoint.presentations). Затем вы можете использовать презентацию в этом списке и использовать функцию ActiveWindow.View.goToSlide (https://docs.microsoft.com/en-us/office/vba/api/powerpoint.view.gotoslide). Вот бесплатный учебник, который я использовал в своем путешествии по VBA (https://www.tutorialspoint.com/vba/index.htm).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...