поддержание видимости объекта изображения с помощью VBA - PullRequest
0 голосов
/ 14 ноября 2011

Я разрабатываю большую нелинейную силовую точку, которая имеет много подразделов. Это потребовало слайд оглавления (TOC). На этом слайде я представляю каждый раздел со своей картинкой. Также на слайде 2 кнопки, которые позволяют пользователю переключаться между изображениями. Кнопки делают это, устанавливая соответствующее изображение раздела видимым, а все остальные - невидимым, так что только одно изображение разделов может быть видимым одновременно. Моя цель состоит в том, чтобы каждый раз, когда пользователь возвращается к слайду с оглавлением, каждый раз на слайде отображалось одно и то же изображение раздела, независимо от того, какой раздел был введен в предыдущий раз, т. е. изображение раздела 1 должно отображаться всякий раз, когда пользователь возвращается к оглавлению. как мне это сделать? Кроме того, если бы я мог найти новые источники, чтобы узнать больше о синтаксисе и другом кодировании VBA, я был бы очень признателен.

я уже консультируюсь:

pptalchemy.co.uk

skp.mvps.org

msdn.microsoft.com

Я просто не могу найти больше хороших сайтов, которые помогут.

Ответы [ 2 ]

0 голосов
/ 05 января 2012

большая часть решения пришла из [pptalchemy] (http://www.pptalchemy.co.uk/PowerPoint_Auto_Open_Code.html):

Я скачал редактор пользовательских интерфейсов для Microsoft Office

Я добавил код из алхимии ppt в кастомUI редактор для слайд-шоу.

В VBA я добавил код:

Sub onloadcode()
Debug.Print "Running"
End Sub


Sub OnSlideShowPageChange(ByVal SSW As SlideShowWindow)
If SSW.View.CurrentShowPosition = SSW.Presentation.Slides("TOC").SlideIndex Then
'code here'
end if
end sub

код теперь выполняется отлично, и я сократил содержание с 9 слайдов до 1.Просто не добавляйте функции в код, пока у вас не будет все для их принятия. В моем случае я добавил код для текстовых полей, которые еще не существовали и которые испортили мой код. Как только я сделал всеобъекты для кода, а затем добавил код, он работал отлично.

0 голосов
/ 14 ноября 2011

Я не совсем понимаю ситуацию, но есть одна возможность:

Добавьте еще один слайд перед оглавлением. Вы можете сделать его дубликатом слайда оглавления (с нужным вам изображением).

Вместо того, чтобы ссылаться на «настоящий» слайд оглавления, вместо этого сделайте ссылку на этот.

На этом слайде добавьте прямоугольник, который покрывает весь слайд, сделайте его прозрачным на 99% и наведите курсор мыши на кнопку «Выполнить макрос» на .

Пусть макрос не сделает ничего, кроме как установит изображение, которое вы хотите видеть на слайде 2, затем перейдите к слайду 2 (настоящий слайд TOC), например,

SlideShowWindows (1) .View.GoToSlide (2)

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

...