もめんの格闘日記

主にPowerPointを中心としたPCのTips的なものを書いていく予定です。

PowerPointでファイル内の別スライドへのハイパーリンクを貼るマクロ

今回はPowerPointのファイル内のハイパーリンクを貼るマクロについて書きます。

ファイル内の別スライドに飛ぶだけなのに、なぜかネットで調べても中々わかりませんでした。探すの下手なだけ?

 

ちなみにPowerPointでのハイパーリンクはスライドショーのときのみ有効です。

スライドショー中に対象の図とかをクリックすると飛びます。

以下のコードはPowerPoint2010で動作確認してます。

 

コード1(選択shapeにハイパーリンクを貼る)

Sub addlink_shape()

With ActiveWindow.Selection.ShapeRange.ActionSettings(ppMouseClick)
  .Hyperlink.SubAddress = 4 '飛びたいスライドのインデックス
End With

End Sub

選択しているshapeにハイパーリンクを貼ります。スライド4に飛びます。

めっちゃ簡単!!

次のコードでテキストボックスやShape中のテキストにも貼れます。

 

コード2(テキスト内の1行目にリンクを貼る)

Sub addlink_text()

With ActiveWindow.Selection.ShapeRange.TextFrame.TextRange _

       .Sentences(1).ActionSettings(ppMouseClick)


  .Hyperlink.SubAddress = 4


End With

End Sub

選択しているshape中のテキスト1行目にリンクを貼ります。

目次にリンクを貼る時とかに使えるかと。

Sentencesの後の数字を変えればリンクを貼る行が変えれます。

 

同じファイル内へのハイパーリンクには、SubAddressの指定だけでいいみたいです。

ハイパーリンクを貼った後のSubAddressにはSlideIDとSlideIndexとTitleが入っているみたいですが、指定するときはSlideIndexだけでもいいようです。

あとSlideIDではダメで、Titleはいいみたいです。

でも、なぜかリンクで飛ぶときはSlideIDが優先されるみたいで、スライドを入れ替えた場合、SlideIDが一致するスライドに飛びます。

ハイパーリンクのSubAddressには入れ替える前のSlideIndexが入っています。スライドのTitleを変えても、同じスライドに飛びます。

 

ややこしいのでまとめるとこんな感じ

  • ハイパーリンクを貼るときはSlideIndexだけでOK
  • 貼った後はスライドを入れ替えても大丈夫
  • スライドのタイトルを変えても大丈夫

書いてみたはいいけど、これ需要あるのか!?

今回はこれで終わりです。