VBA гиперссылки и создание формы - PullRequest
2 голосов
/ 03 января 2012

У меня есть подпрограмма, которая создаст фигуру, но у меня есть две проблемы с кодом:

  • Я должен указать, на каком слайде будет создана эта форма. Это проблема, если я хочу создать одну и ту же фигуру на нескольких слайдах одновременно. Как мне этого добиться? чем заменить activepresentation.slides (x) на
  • Я хочу, чтобы фигура имела гиперссылку на определенный слайд. Что не так с моим кодом для достижения этого? При попытке назначить действие созданной мной фигуре выдается ошибка.

Sub createshape()
    Dim oshp As Shape
    Dim osld As Slide

    'old code
    Set osld = ActivePresentation.Slides(1)
    Set oshp = osld.Shapes.AddShape(msoShapeRectangle, 485, 15, 104, 60)
     oshp.ActionSettings (ppMouseClick)
         .Action = ppActionHyperlink
         .Hyperlink.Address = SlideNumber
         .Hyperlink.SubAddress = 1 'this should take the hyperlink to slide 1 i hope.
End Sub

Я хочу автоматизировать эту функцию, потому что я буду делать то же самое для многих слайдов несколько раз.

1 Ответ

1 голос
/ 03 января 2012

Примерно так будет действовать на текущем слайде. Я проверил гиперссылку слайда 2, чтобы убедиться, что код работал (и не использовал 1 по умолчанию)

Sub CreateShape()
    Dim oShp As Shape
    Dim oSld As Slide
    Set oSld = ActivePresentation.Slides(ActiveWindow.Selection.SlideRange.SlideIndex)
    Set oShp = oSld.Shapes.AddShape(msoShapeRectangle, 485, 15, 104, 60)
    With oShp.ActionSettings(ppMouseClick)
        .Action = ppActionHyperlink
        '.Hyperlink.Address = SlideNumber
        .Hyperlink.SubAddress = 2
    End With
End Sub
...