
私の質問に合うものを探してこのスレッドを調べましたが、ほとんどのトピックは近いものでしたが、私の質問に特有のものではありませんでした。
Excel のアンカー テキストから URL を抽出しようとしています。
これには数式がありますか? 試してみると=GETURL
、=HYPERLINK
URL がバインドされたアンカー テキストが引き続き挿入されます。
何かアイデアはありますか? マクロ ソリューションはあまり役に立たないので、数式があると便利です。そうでなければ、マクロを私に任せてください。
答え1
ハイパーリンクを含むセルがあり、「フレンドリ名」ではなく URL を表示する場合は、次のユーザー定義関数 (UDF) を検討してください。
Public Function hyp(r As Range) As String
hyp = ""
If r.Hyperlinks.Count > 0 Then
hyp = r.Hyperlinks(1).Address
Exit Function
End If
If r.HasFormula Then
rf = r.Formula
dq = Chr(34)
If InStr(rf, dq) = 0 Then
Else
hyp = Split(r.Formula, dq)(1)
End If
End If
End Function
この UDF は、挿入されたハイパーリンクと =HYPERLINK() 関数の両方で機能します。
ユーザー定義関数 (UDF) はインストールも使用も非常に簡単です。
- ALT-F11でVBEウィンドウが開きます
- ALT-I ALT-Mで新しいモジュールを開く
- 内容を貼り付けてVBEウィンドウを閉じます
ワークブックを保存すると、UDF も一緒に保存されます。2003 以降のバージョンの Excel を使用している場合は、ファイルを .xlsx ではなく .xlsm として保存する必要があります。
UDF を削除するには:
- 上記のようにVBEウィンドウを開きます
- コードを消去する
- VBEウィンドウを閉じる
Excel から UDF を使用するには:
=ハイプ(A1)
マクロ全般の詳細については、以下を参照してください。
http://www.mvps.org/dmcritchie/excel/getstarted.htm
そして
http://msdn.microsoft.com/en-us/library/ee814735(v=office.14).aspx
そして
http://www.cpearson.com/excel/WritingFunctionsInVBA.aspx
UDFの詳細については
これを機能させるにはマクロを有効にする必要があります。