今回は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
- 貼った後はスライドを入れ替えても大丈夫
- スライドのタイトルを変えても大丈夫
書いてみたはいいけど、これ需要あるのか!?
今回はこれで終わりです。