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