2009-09-02 14 views
6

Sto provando a creare un pulsante Indietro ma utilizzando i collegamenti ipertestuali semplicemente mi porta alla pagina precedente e finisce in un ciclo ... ad es. se ho la diapositiva 1 che contiene i collegamenti alla diapositiva 3, 4 & 5, quindi fai scorrere i 3 collegamenti su 6 & 7. Se sono attualmente sulla diapositiva 7 e faccio clic su di nuovo, con successo torno alla diapositiva 3, ma poi voglio tornare indietro e finisco alla diapositiva 1 anziché tornare alla diapositiva 7 (si spera che abbia un senso!).Branching Slides in PowerPoint (VBA)

Suppongo che l'unico modo per me di farlo sia con VBA qualcuno può darmi qualche consiglio sul modo migliore per creare un pulsante Indietro? (Sto usando PowerPoint 2007)

+3

Scripting è la programmazione. VBA sta programmando. – Smandoli

risposta

2

Sembra che tu voglia una "traccia di breadcrumb" di diapositive visitate, invece di un semplice pulsante indietro. Quindi hai bisogno di un modo per preservare la pista.

Questo potrebbe essere risolto con un array dinamico. La nuova esplorazione aggiungerebbe record all'array. Le posizioni "Avanti" e "Precedente" verranno trovate spostandosi verso l'alto o verso il basso nella matrice. Avrai alcuni piccoli puzzle logici. Odio riferirti a a generic resource, ma sono fuori specifiche e una panoramica potrebbe essere utile.

UPDATE: Ho desiderato questo in passato per MS Access e ho pensato di trovare prontamente una soluzione frammento. Ma ora vado a cercare (pensando che convertirà anche per te facilmente), e non trovo nulla. Questo è sorprendente perché immagino che sarebbe divertente da costruire. O ... è più difficile da costruire di quanto immagino.

2

C'è un modo veramente ingombrante per farlo in PPT direttamente senza programmazione. Avrai bisogno di "diapositive rivolte in avanti" e di 2 serie di "diapositive rivolte all'indietro". Quelli a rovescio sono di due tipi: diretto-back e home-back. Possono essere tutti identici, ma rendere nascosti i precedenti (ad esempio invece di "Slide 3" avrai bisogno di "Slide 3a" e "Slide 3b" e "Slide 3c".). Sono nascosti in modo tale che quando avanzi normalmente, non li vedrai, ma quando li colleghi, appariranno. La tua lista di link sulle diapositive "a" dovrebbe sempre puntare alle diapositive "b" e le tue diapositive "b" punteranno alle diapositive "c". I collegamenti ipertestuali sul "pulsante indietro" sulle diapositive "a" dovrebbero essere "slide precedente" e sulle diapositive "c" dovrebbero essere "l'ultima diapositiva visualizzata" e sulle diapositive "h" dovrebbero essere "prima diapositiva" (usare "azione" per impostare questo invece di 'collegamento ipertestuale').

Ci vuole un po 'di tempo per completare, ma può essere fatto.

2

Oggi stavo lottando con un problema simile e ho fatto un po 'di "briciole di pane": un generatore per powerpoint. Non v'è alcuna funzione di collegamento ancora, ma è possibile implementare se ti piace: Github Project

parti essenziali del codice

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

Mentre il link che hai fornito può rispondere alla domanda, è meglio postare le parti essenziali della soluzione direttamente nella domanda Stack Overflow nel caso in cui il link non sia più valido in futuro. – Kmeixner

+0

Vuoi dire parti del codice? – Zanidd

+0

Sì, Stack Overflow è un luogo orientato verso le persone che ricevono aiuto con le loro domande di programmazione. Nella maggior parte dei casi, gli esempi di codice con alcune parole che descrivono come l'esempio di codice risolve il problema dovrebbero essere inclusi nella risposta. – Kmeixner

Problemi correlati