View Single Post
 
Old 08-23-2013, 06:14 AM
JohnWilson JohnWilson is offline Windows 7 64bit Office 2010 32bit
Programmer
 
Join Date: Nov 2008
Location: UK
Posts: 1,913
JohnWilson has a spectacular aura aboutJohnWilson has a spectacular aura about
Default

My understanding was this was fixed in 2010 as long as you didn't downsave. It was certainly a problem in 2003 version.

This is just an experiment so try on a copy!!

There may be a memory limit to the hyperlink storage (there was in 2003). This stores the hyperlink subaddress which includes the target slide title. the longer the title the more memory. BUT as far as I can tell once the link is created the title data is never used. This code should replace the title data (not the actual title of course) with a single letter and reduce the memory used. It will not fix already broken links.

Be interested to know if it works!
Sub fixLinks()
Dim osld As Slide
Dim ohl As Hyperlink
Dim ipos As Integer

For Each osld In ActivePresentation.Slides
For Each ohl In osld.Hyperlinks
If ohl.Address = "" Then 'internal
If Not ohl.SubAddress Like "-1*" Then 'NEXT etc
ipos = InStrRev(ohl.SubAddress, ",")
ohl.SubAddress = Left(ohl.SubAddress, ipos) & "Z"
End If
End If
Next ohl
Next osld
End Sub

As written the code will break custom shows.

If you have these you could try

Sub fixLinks()
Dim osld As Slide
Dim ohl As Hyperlink
Dim ipos As Integer

For Each osld In ActivePresentation.Slides
For Each ohl In osld.Hyperlinks
If ohl.Address = "" Then 'internal
If Not ohl.SubAddress Like "-1*" Then 'NEXT etc
On Error Resume Next
Err.Clear
Debug.Print ohl.ShowAndReturn
If Err <> 0 Then 'don't check custom shows
ipos = InStrRev(ohl.SubAddress, ",")
ohl.SubAddress = Left(ohl.SubAddress, ipos) & "Z"
End If
End If
End If
Next ohl
Next osld
End Sub
__________________
Microsoft PowerPoint MVP 2007-2023
Free Advanced PowerPoint Tips and Tutorials

Last edited by JohnWilson; 08-23-2013 at 08:28 AM. Reason: check for NEXT link etc
Reply With Quote