パワーポイント | スライドへのリンクを自動で設定する

パワーポイント・スライドへのリンク作成

スライド数が多い場合のハイパーリンク作成が大変!

その悩みは、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 = ""
目次