Articolo wiki
  • Questo articolo wiki è bloccato
Applicabile a 433 visualizzazioni

PowerPoint - Modificare tutti i collegamenti ipertestuali nelle slides - VBA

Riepilogo

Livello tecnico: Conoscenza di base di Visual Basic for Applications Si applica a: PowerPoint(2010/2013)

Dettagli

NOTA. Gli esempi ed il codice sono forniti *così come sono* e l’autore declina ogni responsabilità per un loro uso scorretto. Utilizzate gli esempi forniti o file di prova per i vostri test. La correzione delle eccezioni (errori) e il controllo del tipo di dati inserito è solo parziale. I file vogliono essere un semplice esempio che illustra come sia possibile automatizzare PowerPoint e sono forniti solo a scopo dimostrativo.

 

Situazione

Ci troviamo nella necessità di modificare parte del testo dei collegamenti ipertestuali per tutte le slides della nostra presentazione. Tipico caso quando cambia la path della cartella che contiene i files di appoggio alla presentazione o parte del link di un sito web di riferimento. Se slides e collegamenti ipertestuali sono molti, ci troviamo a dover selezionare slide per slide i vari hyperlinks: un lavoro ripetitivo e che può portare ad errori.

 

La macro commentata che trovate qui sotto, fa tutto *il lavoro sporco* con un unico click:

 

Public Sub m()
    'dichiaro le variabili
    Dim s As Slide
    Dim h As Hyperlink
    'ciclo le slides
    For Each s In ActivePresentation.Slides
        'ciclo gli hyperlinks della slides
        For Each h In s.Hyperlinks
            'cambio parte della stringa di connessione
            '(in questo caso sostituisco C:\Test con C:\Prova)
            h.Address = Replace(h.Address, _
                "C:\Test", "C:\Prova")
        Next
    Next
    'Set a Nothing delle variabili oggetto
    Set s = Nothing
    Set h = Nothing
End Sub

 

Il metodo Replace si aspetta alcuni argomenti. Quelli che interessano qui sono:

  • la stringa completa da modificare
  • la parte di testo che modificheremo
  • il nuovo testo 

 

Nel caso specifico sostituisco nella stringa di connessione la parte C:\Test con C:\Prova. Il resto della strina rimane identico. 

Volendo modificare contemporaneamente il testo visualizzato sulla slide, possiamo aggiungere la seguente riga di codice all'interno del ciclo For più interno:

 

h.TextToDisplay = "Quello che volete appaia"

 

sostituendo a "Quello che volete appaia" il vostro testo. Nel caso in precedenza fosse mostrato l'indirizzo completo dell'hyperlink e vogliate modificarlo con il nuovo, sempre per l'esempio precedente:

 

h.TextToDisplay = Replace(h.TextToDisplay, _
                "C:\Test", "C:\Prova")

 

PowerPoint e il VBA

Per inserire la macro nel progetto ed eseguirla:

  • Premere assieme ALT+F11 per visualizzare l'editor del vb di PowerPoint
  • Inserisci-->Modulo
  • Nel foglio bianco che compare (il modulo di codice) inserite il codice
  • ALT+F11 e tornate in PowerPoint
  • Premere assieme ALT+F8 per visualizzare le macro
  • Selezionare la macro da eseguire
  • Pulsante Esegui

 

NOTA. PowerPoint non dispone nativamente di procedure assolutamente sicure per impedire la visualizzazione e la modifica del codice vb. E’ una cosa da tenere sempre presente quando si distribuiscono file (non le presentazioni, ma file con il progetto) con contenuti ritenuti delicati.

Commenti (0)

avanzamento