2009-09-02 5 views
6

Я пытаюсь создать кнопку «Назад», но используя гиперссылки, это просто приводит меня к предыдущей странице и заканчивается в цикле ... например. если у меня есть слайд 1, у которого есть ссылки для слайда 3, 4 & 5 затем переместите 3 ссылки на 6 & 7. Если я нахожусь на слайде 7 и щелкаю обратно, он возвращает меня обратно в слайд 3, но затем я хочу щелкнуть и в конечном итоге на слайде 1, а не обратно на слайд 7 (надеюсь, я делаю какой-то смысл!).Ветвление слайдов в PowerPoint (VBA)

Я предполагаю, что единственный способ для меня сделать это с помощью VBA, может ли кто-нибудь дать мне несколько советов о том, как создать обратную кнопку? (Я использую PowerPoint 2007)

+3

сценарии являются программированием. VBA - это программирование. – Smandoli

ответ

2

Похоже, что вы хотите получить «дорожку для палок» посещенных слайдов вместо простой кнопки «Назад». Таким образом, вам нужен способ сохранить след.

Это может быть адресовано динамическим массивом. Новый просмотр добавит записи в массив. Ваши «Следующие» и «Предыдущие» местоположения будут найдены путем перемещения вверх или вниз по массиву. У вас будут головоломки с легкой логикой. Я ненавижу ссылаться на вас a generic resource, но я не в курсе, и обзор может быть полезен.

ОБНОВЛЕНИЕ: Я хотел это в прошлом для MS Access и думал, что с готовностью найду решение для фрагментов. Но теперь я иду на поиски (думая, что он тоже легко преобразуется для вас), и я ничего не нахожу. Это удивительно, потому что я думаю, что было бы интересно построить. Или ... сложнее построить, чем я ожидаю.

2

Существует очень громоздкий способ сделать это в PPT напрямую без программирования. Вам понадобятся «передние слайды» и два набора «обращенных назад слайдов». Задние - это два типа: прямые и задние. Они могут быть одинаковыми, но скрывать скрытые (например, вместо «Slide 3» вам понадобятся «Слайд 3а» и «Слайд 3b» и «Слайд 3c».). Они скрыты, так что, когда вы прогрессируете нормально, вы их не увидите, но когда вы обратитесь к ним, они появятся. Ваш список ссылок на слайдах «a» всегда должен указывать на слайды «b», а слайды «b» указывают на слайды «c». Ваши гиперссылки на «обратной кнопке» на слайдах «a» должны быть «предыдущим слайдом», а слайды «c» должны быть «последним просмотром слайдов», а слайды «h» должны быть «первым слайдом» (используйте «действие» для установите это вместо «гиперссылки»).

Требуется некоторое время для работы, но это можно сделать.

2

Сегодня я столкнулся с подобной проблемой и сделал небольшую «хлебную крошку» - генератор для powerpoint. Там нет функции ссылки, но вы можете реализовать его, если вам нравятся: Github Project

Существенных части кода

Public Sub breadcrumbs(ByVal count As Integer, ByRef titles() As String) 
    Dim cntr As Integer 
    Dim content() As String 
    Dim margin As Integer 
    Dim width As Integer 
    '---------------------------- 

    ' Set Titles 
    content = titles 
    cntr = 0 
    ' Set width 
    width = ((Application.ActivePresentation.PageSetup.SlideWidth - (margin * count * 2) - 20)/count) - 50 

    ' Loop through all slides 
    For Each sld In Application.ActivePresentation.Slides 
     ' generate breadcrumb for each title 
     For Each con In content 
      sld.Shapes.AddShape(1, (50 + (width * cntr)), 15, width, 50).TextFrame.TextRange.Text = con 
      cntr = cntr + 1 
     Next con 
     cntr = 0 

    Next sld 

End Sub 
+1

Хотя ссылка, которую вы предоставили, может ответить на вопрос, лучше всего разместить важные части вашего решения непосредственно в вопросе переполнения стека в случае, если ссылка станет недействительной в будущем. – Kmeixner

+0

Вы имеете в виду части кода? – Zanidd

+0

Да, переполнение стека - это место, ориентированное на людей, которые получают помощь в вопросах программирования. В большинстве случаев примеры кода с некоторыми словами, описывающими, как пример кода решает проблему, должны быть включены в ваш ответ. – Kmeixner