2010-09-08 3 views
0

J'ai ce problème, j'utiliser:C# gestion PowerPoint 2007: .Hyperlink.Address toujours NULL

//someWord is a TextRange object from PPT TextBox 
String address = someWord.ActionSettings[PpMouseActivation.ppMouseClick].Hyperlink.Address; 

Je suis sûr que ce soit la façon de lire l'adresse à des pages Web dans un lien, j'utilisais ceci dans PPT 2003, et ça marche! MAIS, maintenant j'essaie de faire la même dans PPT 2007 et le .Hyperlink.Address est toujours égal à null.

Une suggestion? Je vous remercie!

Répondre

0

Il est possible que l'URL soit exprimée dans un ensemble d'exécutions. Comme si vous aviez une zone de texte qui ressemblait à ceci:

Un moteur de recherche: Ask Jeeves

Il a techniquement deux pistes. Essayez les deux dans VBA et voyez si un ou les deux (ou aucun) fonctionnent:

Sub getHyperlinkfromTextRun() 
    Dim sl As Slide: Set sl = ActivePresentation.Slides(2) 
    Dim sh As Shape: Set sh = sl.Shapes(1) 
    Dim tr As TextRange: Set tr = sh.TextFrame.TextRange 
    Dim URL As String 
    For i = 1 To tr.Runs.Count 
     URL = tr.Runs(i).ActionSettings(ppMouseClick).Hyperlink.Address 
     If Len(URL) > 0 Then 
      Dim runText As String 
      runText = tr.Runs(i).Text 
      Debug.Print "RUN " & i & ": " & runText & ", " & "URL: " & URL 
     End If 
    Next 
End Sub 

Sub getHyperlinkfromTextRange() 
    Dim sl As Slide: Set sl = ActivePresentation.Slides(2) 
    Dim sh As Shape: Set sh = sl.Shapes(1) 
    Dim tr As TextRange: Set tr = sh.TextFrame.TextRange 
    Debug.Print tr.ActionSettings(ppMouseClick).Hyperlink.Address 
End Sub 
Questions connexes