【问题标题】:vba hyperlinks and shape creationvba 超链接和形状创建
【发布时间】:2014-03-05 23:58:48
【问题描述】:

我有一个可以创建形状的子例程,但是我的代码有两个问题:

  • 我必须指定将在哪张幻灯片上创建此形状。如果我想同时在多张幻灯片上创建相同的形状,这是一个问题。我该如何做到这一点?我应该用什么替换 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

我想自动执行此功能,因为我将多次对许多幻灯片执行相同的操作。

【问题讨论】:

  • 首先,你错过了With oshp .... End With

标签: vba powerpoint


【解决方案1】:

这样的东西会作用于当前幻灯片。我测试了幻灯片 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

【讨论】:

  • 漂亮。谢谢你。我遇到的唯一问题是它说 SlideNumber 不是定义的变量。
  • @uncertaintea 我把它留在了你之前的代码中——我建议删除它,因为SubAddress 属性设置了你想要的Place in ThisDocumentAddress 看起来像是设置了 Existing File or Web Page
  • @brettdj 我在这件事上有一个问题......如果现在我在幻灯片 2 之前放一张新幻灯片 subAddress 不会改变。我怎样才能让它更新添加参考正确的幻灯片?谢谢
猜你喜欢
  • 2018-03-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-09-07
  • 1970-01-01
  • 2016-11-05
  • 1970-01-01
  • 2013-10-01
相关资源
最近更新 更多