Excelの参照先セルから表示テキストとURLを抜き出す関数

ウェブページのリストが入ったエクセルファイルがあり、ある列にはページタイトルがクリッカブルになっていました。そのタイトルとURLを別々のデータにしたいプロセスがあったのですが、抜き出す関数が用意されていないようです。(私が作業していたのはExcel2003です。)

そこで、オリジナル関数を作ることにしました。プログラマではないので、美しくなかったり、記述ルールが変な場合はご容赦ください。

hyperlinkstrip(<参照先のセルアドレス>,”<抜き出すデータタイプ>”)

Function hyperlinkstrip(myLink As Range, myType As String) As String
 
   If myType = "url" Then
   
        If myLink.Hyperlinks.Count > 0 Then  ' セルがハイパーリンクになっていないとき
            
            hyperlinkstrip = myLink.Hyperlinks(1).Address
        
                If myLink.Hyperlinks(1).SubAddress <> "" Then
        
                    hyperlinkstrip = hyperlinkstrip & "#" & myLink.Hyperlinks(1).SubAddress
        
                End If
        
        Else
            
            hyperlinkstrip = ""
        
        End If
   
      Else
   
        If myLink.Hyperlinks.Count > 0 Then
        
            hyperlinkstrip = myLink.Hyperlinks(1).TextToDisplay
   
        Else
        
            hyperlinkstrip = myLink.Value
   
        End If
      
   End If

以下のような動作になります。ハイパーリンクになってないセルのときは、URLはブランクになります。

URLリンクのデータを抜き出す関数

オリジナル関数の多用は、ファイルの共有などがしづらくはなりますが、手元の一括作業などの効率化に役立つことがあるので、作り方や何を関数にするのかの感覚を持てるとよいですね。