2012-01-02 14 views
2

私は形状を作成するサブルーチンを持っているが、私はコードを持つ2つの問題を抱えて:VBAハイパーリンクと形状の作成

  • を私は、この形状が作成されるスライドに指定する必要があります。複数のスライドに同じ図形を同時に作成したい場合、これは問題です。どのように達成するのですか?私は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を使用しなかった)ことをesnureするスライド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 
+0

WITH' oshp ....エンドで '欠けています。ありがとうございました。私が唯一の問題はSlideNumberが定義された変数ではないということです。 – uncertaintea

+0

@uncertaintea私はあなたの先のコードからそれを残しました - あなたが望むものである 'Place in ThisDocument'を設定する' SubAddress'プロパティで削除することをお勧めします。 'Address'は' Existing File or Web Page'を設定しているようです。 – brettdj

+0

@brettdjこの問題について質問があります。スライド2の前に新しいスライドを置くとsubAddressは変更されません。正しいスライドを参照を追加して更新するにはどうすればいいですか?ありがとう –

関連する問題