Supercharge your PowerPoint productivity with
Supercharge your PPT Productivity with PPTools - Click here to learn more.

Proud member of

PPTools

Image Export converts PowerPoint slides to high-quality images.

PPT2HTML exports HTML even from PowerPoint 2010 and 2013, gives you full control of PowerPoint HTML output, helps meet Section 508 accessibility requirements

Merge Excel data into PowerPoint presentations to create certificates, awards presentations, personalized presentations and more

Resize your presentations quickly and without distortion

Language Selector switches the text in your presentation from one language to another

FixLinks prevents broken links when you distribute PowerPoint presentations

Shape Styles brings styles to PowerPoint. Apply complex formatting with a single click.

Show Me: The hyperlinks in my presentation

Problem

What hyperlinks are in this presentation? What slides are they on and what shapes or text are they associated with?

Solution

Run this code to find out:

Sub ShowMeTheHyperlinks()
' Lists the slide number, shape name and address
' of each hyperlink

    Dim oSl As Slide
    Dim oHl As Hyperlink

    For Each oSl In ActivePresentation.Slides
        For Each oHl In oSl.Hyperlinks
            If oHl.Type = msoHyperlinkShape Then
                MsgBox "HYPERLINK IN SHAPE" _
                    & vbCrLf _
                    & "Slide: " & vbTab & oSl.SlideIndex _
                    & vbCrLf _
                    & "Shape: " & oHl.Parent.Parent.Name _
                    & vbCrLf _
                    & "Address:" & vbTab & oHl.Address _
                    & vbCrLf _
                    & "SubAddress:" & vbTab & oHl.SubAddress
            Else
                ' it's text
                MsgBox "HYPERLINK IN TEXT" _
                    & vbCrLf _
                    & "Slide: " & vbTab & oSl.SlideIndex _
                    & vbCrLf _
                    & "Shape: " & oHl.Parent.Parent.Parent.Parent.Name _
                    & vbCrLf _
                    & "Address:" & vbTab & oHl.Address _
                    & vbCrLf _
                    & "SubAddress:" & vbTab & oHl.SubAddress
            End If
        Next    ' hyperlink
    Next    ' Slide

End Sub

Or to get a list off all the hyperlinks in the presentation in a text file:

Option Explicit

Sub FileEmDano()
' Lists the slide number, shape name and address
' of each hyperlink and saves the results to a file:

Dim oSl As Slide
Dim oHl As Hyperlink
Dim sTemp As String
Dim sFileName As String

' Output the results to this file:
sFileName = Environ$("TEMP") & "\" & "HyperlinkList.TXT"

For Each oSl In ActivePresentation.Slides
    For Each oHl In oSl.Hyperlinks
        If oHl.Type = msoHyperlinkShape Then
            sTemp = sTemp & "HYPERLINK IN SHAPE on Slide:" & vbTab & oSl.SlideIndex _
                & vbCrLf _
                & "Shape: " & oHl.Parent.Parent.Name _
                & vbCrLf _
                & "Address:" & vbTab & oHl.Address _
                & vbCrLf _
                & "SubAddress:" & vbTab & oHl.SubAddress & vbCrLf & vbCrLf
        Else
            ' it's text
            sTemp = sTemp & "HYPERLINK IN TEXT on Slide:" & vbTab & oSl.SlideIndex _
                & vbCrLf _
                & "Shape: " & oHl.Parent.Parent.Parent.Parent.Name _
                & vbCrLf _
                & "Address:" & vbTab & oHl.Address _
                & vbCrLf _
                & "SubAddress:" & vbTab & oHl.SubAddress & vbCrLf & vbCrLf
        End If
    Next    ' hyperlink

Next    ' Slide

Call WriteStringToFile(sFileName, sTemp)
Call LaunchFileInNotePad(sFileName)

End Sub

Sub WriteStringToFile(pFileName As String, pString As String)
' Saves the contents of the string pSTring to the file pFileName
    Dim intFileNum As Integer
    intFileNum = FreeFile
                ' change Output to Append if you want to add to an existing file
                ' rather than creating a new file each time
    Open pFileName For Output As intFileNum
    Print #intFileNum, pString
    Close intFileNum

End Sub

Sub LaunchFileInNotePad(pFileName As String)
    Dim lngReturn As Long
    lngReturn = Shell("NOTEPAD.EXE " & pFileName, vbNormalFocus)

End Sub


How do I use VBA code in PowerPoint?
http://www.pptfaq.com/FAQ00033.htm


Did this solve your problem? If so, please consider supporting the PPT FAQ with a small PayPal donation.
Page copy protected against web site content infringement by Copyscape Contents © 1995 - 2022 Stephen Rindsberg, Rindsberg Photography, Inc. and members of the MS PowerPoint MVP team. You may link to this page but any form of unauthorized reproduction of this page's contents is expressly forbidden.

Supercharge your PPT Productivity with PPTools

content authoring & site maintenance by
Friday, the automatic faq maker (logo)
Friday - The Automatic FAQ Maker

Show Me: The hyperlinks in my presentation
http://www.pptfaq.com/FAQ00674_Show_Me-_The_hyperlinks_in_my_presentation.htm
Last update 13 December, 2017
Created: