Excel Tips by pPoy

トップへ←Top    VBAへVBA  VBA基礎へVBA 基礎  一般へ一般  

Macro ハイパーリンク先を新規シートに書き出す方法
(Excel97,Excel2000,Excel2002)
Excel のシートに入力されたハイパーリンクの、アドレスだけを抽出する方法です。
抽出結果は新規シートのA1から一列に作成されます。

以下のコードを標準モジュールに貼り付けて、
該当するワークシートで、このマクロを実行してください。
Sub myHyperText()
    'アクティブシート上に設定済みのハイパーリンク先を
    '新規シートに書き出す 2003/10/05 pPoy
    Dim cnt As Long, i As Long
    Dim h As Variant
    Dim myData As Variant
    Dim myRange As Range
    
    With ActiveSheet
        cnt = .Hyperlinks.Count   'ハイパーリンクの個数
        If cnt = 0 Then Exit Sub
        ReDim myData(cnt, 0)    '配列のサイズ設定
        i = 0
        For Each h In .Hyperlinks
            'アドレスを変数に格納
            myData(i, 0) = h.Address
            i = i + 1
        Next
    End With
    
    Worksheets.Add    '新規シート追加
    Set myRange = ActiveSheet.Range("a1")
    myRange.Resize(cnt, 1).Value = myData
    Set myRange = Nothing
End Sub
≪注意≫
  • Excel の行数を超える (65,536件超) ハイパーリンクがあった場合、エラーで止まります。

  • 対象となるシートにハイパーリンクが1件も無かった場合は、何も起こりません。

  • セル番地や表示名も必要な場合は、こちら をご覧ください。


この頁のTOPへTop
【念の為の注意書きです。】
このページ(下位ページ含む)の全ての物の無断転載を禁止いたします。
又、当ページ(下位ページ含む)に記載されていることは、全て自己の責任において実行してください。

Copyright(C) pPoy 2003-2010