ウェブページのリストが入ったエクセルファイルがあり、ある列にはページタイトルがクリッカブルになっていました。そのタイトルと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はブランクになります。
オリジナル関数の多用は、ファイルの共有などがしづらくはなりますが、手元の一括作業などの効率化に役立つことがあるので、作り方や何を関数にするのかの感覚を持てるとよいですね。
