🐴

VBA:テキスト+URLのハイパーリンクを分離して格納する

2021/01/26に公開

概要

Webとかからテキストを貼り付けたときにハイパーリンクされてることってありますよね。
URLと文字列を分離したいことって多々ありますよね。

以下、ExcelVBAで解決を図ったときのやつです。

ソース

Option Explicit

 '選択範囲のハイパーリンクからURLを抽出して文字列に変換し、同セルに格納する
Sub SetURL()
    Dim r As Range
    Dim linkAddress As String

For Each r In Selection
        If r.Hyperlinks.Count > 0 Then
            linkAddress = r.Hyperlinks(1).Address
            If r.Hyperlinks(1).SubAddress <> "" Then
                linkAddress = linkAddress & "#" & r.Hyperlinks(1).SubAddress
            End If
        Else
            If InStr(r.Formula, "=HYPERLINK") Then
                linkAddress = Mid(r.Formula, 13, InStr(13, r.Formula, """") - 13)
            Else
                linkAddress = ""
            End If
        End If
        If linkAddress <> "" Then
            r.Value = linkAddress
        End If
    Next
End Sub

Discussion