更新日: 2011-02-21 23:24:53

エクセルでテキストに張り付いているハイパーリンク先のURLを取り出す方法

著者: MIRANDA

編集者: MIRANDA

閲覧数: 609

Okgn btn gudie info favorite

0

はじめに

Photo by kclauson

ホームページで文字列をクリックすると、新しくページが開きますよね。
それが、ハイパーリンクですが、そのURLを一つ一つコピーするのは面倒だ・・・もっと簡単にできる方法はないのかとお考えの方に。
2種類の方法ですが、お好みでどうぞ。本当に便利です!!!

STEP1

関数では、ハイパーリンクを取り出すことはできませんので、マクロを使用しましょう。
マクロの貼り付け方法はショートカットALT+F11でVBA画面を開きます。
左上、VBA Projectで作業しているseet名をダブルクリック。
そこに、下記マクロをコピー&ペーストして下さい。
実行する際は、ALT+F8でマクロ画面を開き、実行をクリック
数分ですべて取り出すことが出来ますよ。

STEP2

作業しているシートのハイパーリンクが入っているセルの右隣に、URLを書き出します。

STEP3 Public Sub GetURL()

  Dim h As Hyperlink
  Dim a As String
  Dim s As String
  For Each h In ActiveSheet.Hyperlinks
    a = h.Address
    s = h.SubAddress
    If s <> "" Then
      a = a & "#" & s
    End If
    h.Range.Offset(0, 1) = a
  Next
End Sub

STEP4

作業しているシートの後ろに新しくシートを作り、A列にハイパーリンクのアドレス、B列がセルアドレスです。ハイパーリンクの入っていない文字列は詰められてしまいます。
セルアドレスで確認が必要ですが、VLOOKUPなどを使用して、入力して下さい。

STEP5 Sub Macro1()

Dim idx As Integer
Dim ws As Worksheet
Dim trg As Range
 Set ws = ActiveSheet
 If ws.Hyperlinks.Count > 0 Then
  Worksheets.Add after:=ws
  Set trg = ActiveSheet.Range("A1")
  For idx = 1 To ws.Hyperlinks.Count
   If Left(ws.Hyperlinks(idx).Address, 1) = "=" Then
    trg.Value = "'" & ws.Hyperlinks(idx).Address
   Else
    trg.Value = ws.Hyperlinks(idx).Address
   End If
   trg.Offset(0, 1).Value = ws.Hyperlinks(idx).Parent.Address
   Set trg = trg.Offset(1)
  Next idx
 End If
End Sub

【PR】

このガイドは役に立ちましたか?ガイドの著者にお礼を伝えよう!

Okgn btn gudie info thunks b

79

当ガイドは作成日時点での情報です。ガイド内容の実施はご自身の責任の元、ご利用いただきますようお願いいたします。

このガイドを通報する