Управление C # PowerPoint 2007: .Hyperlink.Address всегда NULL - PullRequest
0 голосов
/ 08 сентября 2010

У меня есть эта проблема, я использую:

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

Я уверен, что это способ чтения адреса веб-страниц по ссылке, я использовал это в PPT 2003, и он работает! НО, сейчас я пытаюсь сделать то же самое в PPT 2007 и .Hyperlink.Address всегда равно нулю .

Есть предложения? спасибо!

1 Ответ

0 голосов
/ 08 сентября 2010

Возможно, что URL записан в серии запусков.Например, если у вас есть текстовое поле, которое выглядит следующим образом:

Поисковая система: Ask Jeeves

Технически это имеет два прогона.Попробуйте оба из них в VBA и посмотрите, работает ли один или оба (или ни один):

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
...