スライド数が多い場合のハイパーリンク作成が大変!
その悩みは、VBAを使うと簡単に設定できます。
手動でハイパーリンクを設定する方法は、エクセルやワードと同じです。
スライドが多いと途中でやめたくなってしまう、なんてことあったりします。
目次
設定例
マクロ実行でハイパーリンクを設定する前に目次を作成します。
目次作成
目次作成はこちらの方法で簡単に作れます。
パワーポイント | スライドの目次を簡単作成する・手動とVBA
パワポの目次作成について、ワードのように簡単に作れない悩みを解決する方法を紹介しています。一般機能を使う方法は手間がかかりますが、VBA(マクロ)を使う方法が簡単です。
ハイパーリンクの設定と動作
ハイパーリンクを設定後、スライドショーを実行します。
ハイパーリンクを設定した項目をクリックするとリンク先へ移動します。
目次へ戻る時は、目次のスライド番号の「1」を押した後「Enter」キーを押します。
スライドショーにせずにリンクを開く場合は、テキストを右クリックし、「リンクを開く」をクリックするとリンク先へ移動します。
サンプルコード
設定対象のテキストを選択した状態でマクロを実行します。
Sub sample() Dim i As Long, j As Long j = 2 For i = 1 To 3 With ActiveWindow.Selection.TextRange _ .Sentences(i).ActionSettings(ppMouseClick) .Hyperlink.SubAddress = j End With j = j + 1 Next i End Sub
「For i = 」の後はスライド数が決まっている前提にしています。
以下は目次作成~ハイパーリンク設定までのサンプルです。
条件
- スライド1は目次
- スライド2以降に目次とリンク設定をする
- タイトルは全て入力されている
Sub sample2() Dim sid As Slide: Set sid = ActivePresentation.Slides(1) Dim mokuji As String Dim sLnk As TextRange With ActivePresentation.Slides Dim i As Long For i = 2 To .Count With .Item(i) mokuji = .Shapes.Title.TextFrame.TextRange.Text & vbNewLine Set sLnk = sid.Shapes.Placeholders(2).TextFrame.TextRange.InsertAfter(NewText:=mokuji) sLnk.ActionSettings(ppMouseClick).Hyperlink.SubAddress = .SlideID & "," & .SlideIndex & "," & mokuji End With Next i End With
目次内容に変更があった場合は、テキスト内の文字を削除しマクロを実行します。
もしくは文字を5行目の上に消すコードを追記します。
sid.Shapes.Placeholders(2).TextFrame.TextRange = ""