Home » パワーポイントマクロ・PowerPoint VBAの使い方 » ハイパーリンクのアドレスを取得するPowerPointマクロ

ハイパーリンクのアドレスを取得するPowerPointマクロ

対象:PowerPoint2007, PowerPoint2010, PowerPoint2013

ハイパーリンクのアドレスを取得するPowerPointマクロ

「パワーポイント vba ハイパーリンクアドレスを取得」
という検索で、このサイト・インストラクターのネタ帳へのアクセスがありました。

ハイパーリンクのアドレスを取得するPowerPointマクロ・VBA(Visual Basic for Applications)のコードを探している方による検索です。

[スポンサードリンク]

アクティブスライド上のハイパーリンクのアドレスを取得するサンプルマクロ

以下のようなマクロで、アクティブスライド上のハイパーリンクのアドレスと、ハイパーリンクの設定されている文字列を取得して、メッセージボックスに表示することができます。

Sub アクティブスライド上のハイパーリンクのアドレスを取得()
 Dim hlk As Hyperlink

 For Each hlk In _
  ActiveWindow.Selection.SlideRange.Hyperlinks
  With hlk
   MsgBox .TextToDisplay & vbCrLf & .Address
  End With 
 Next hlk
End Sub

Hyperlinksプロパティで、Hyperlinksコレクションオブジェクトを取得できますから、アクティブなスライド上の、全ハイパーリンクにループを回して、
 For Each hlk In _
  ActiveWindow.Selection.SlideRange.Hyperlinks

リンクの設定されている文字列と、アドレスをメッセージボックスに表示しています。
  With hlk
   MsgBox .TextToDisplay & vbCrLf & .Address

ハイパーリンクのアドレスをExcelに書き出すサンプルマクロ

「パワーポイント vba ハイパーリンクアドレスを取得」
という検索が行われた状況を想像すると、ハイパーリンクが大量に設定されているPowerPointファイルからアドレスを取り出す必要があるが、手作業で行うのは面倒、ということではないかと思います。

そんな状況に使えそうなマクロを作ってみました。

アクティブなプレゼンテーションファイルから、ハイパーリンクの存在するスライド番号・ハイパーリンクの設定されている文字列・ハイパーリンクのアドレスを、Excelに書き出すPowerPointマクロです。

Sub ハイパーリンクのアドレスをExcelに書き出す()
 Dim sld As Slide
 Dim hlk As Hyperlink
 Dim xl_app As Object ' Excel.Application
 Dim xl_wbk As Object ' Excel.Workbook
 Dim r As Long

 Set xl_app = CreateObject("Excel.Application")
 With xl_app
  .Visible = True
  Set xl_wbk = .Workbooks.Add
 End With

 r = 1
 With xl_wbk.Worksheets(1)
  .Cells(r, "A").Value = "スライド番号"
  .Cells(r, "B").Value = "表示テキスト"
  .Cells(r, "C").Value = "アドレス"

  For Each sld In ActivePresentation.Slides
   For Each hlk In sld.Hyperlinks
    r = r + 1
    .Cells(r, "A").Value = sld.SlideIndex
    .Cells(r, "B").Value = hlk.TextToDisplay
    .Cells(r, "C").Value = hlk.Address
   Next hlk
  Next sld

  .Range("A1").CurrentRegion.EntireColumn.AutoFit
 End With

 Set xl_wbk = Nothing
 Set xl_app = Nothing
End Sub

ExcelをCreateObjectしてから表示し、
 Set xl_app = CreateObject("Excel.Application")
 With xl_app
  .Visible = True

新規のブックを作成します。
  Set xl_wbk = .Workbooks.Add

行番号を格納する変数・rを初期化して、
 r = 1

先ほど作成した新規ブックの1枚目のワークシートの、
 With xl_wbk.Worksheets(1)

1行目に見出しを作成します。
  .Cells(r, "A").Value = "スライド番号"
  .Cells(r, "B").Value = "表示テキスト"
  .Cells(r, "C").Value = "アドレス"

アクティブなプレゼンテーションファイルの、全スライドにループを回して、
  For Each sld In ActivePresentation.Slides

そのループ内で、更に、各スライド上の全ハイパーリンクに対してループを回し、
   For Each hlk In sld.Hyperlinks

Excelのワークシートの2行目以降の、
    r = r + 1

A列にスライド番号を、
    .Cells(r, "A").Value = sld.SlideIndex

B列に表示テキストを、
    .Cells(r, "B").Value = hlk.TextToDisplay

C列にアドレスを書き出しています。
    .Cells(r, "C").Value = hlk.Address

全スライドのループ処理が終わったら、書き出したExcelの列幅を調整しています。
  Next sld
  .Range("A1").CurrentRegion.EntireColumn.AutoFit

[スポンサードリンク]

Home » パワーポイントマクロ・PowerPoint VBAの使い方 » ハイパーリンクのアドレスを取得するPowerPointマクロ

「パワーポイントマクロ・PowerPoint VBAの使い方」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.