アプリ版:「スタンプのみでお礼する」機能のリリースについて

エクセル2003でハイパーリンクのセルからURLアドレスを取得する関数はありますか?

ハイパーリンクを作成する関数は、=HYPERLINK("URLアドレス", "表示名称")で可能ですが、この逆で、"URLアドレス"を取得する関数を探しています。

例えばこのセルが、A1にあったとして、B1に =A1とすると、B1には「表示名名称」が表示されます。
C1に「URLアドレス」を表示させるVBAでなく関数が知りたいです。
無ければ、VBAでも構いません。

よろしくお願いいたします。

A 回答 (3件)

ハイパーリンクは関数で作ったものですか?


それとも直接メールアドレスやURLを入力したものですか?

この回答への補足

関数で作ったものです。
直接URを入力して自動的にできたものと、方法は変わるのでしょうか?
L

補足日時:2008/01/13 12:06
    • good
    • 0

>直接URを入力して自動的にできたものと、方法は変わるの


でしょうか?

↓はセルに直接記述されたメールアドレスやURLを取得する
ユーザー定義関数です。関数でハイパーリンクしたものには
使えません。

Function hypa(c As Range)
hypa = c.Hyperlinks(1).Address
End Function
    • good
    • 0

こんな感じで如何でしょうか。



HYPERLIN関数でも直接設定でも どちらでも機能します。

使用例: セルA1にハイパーリンクが設定してあるとき
 =GetLinkAdr(A1)

直接設定している場合は、そのセルで一つ目に設定したもののアドレス(セル参照を除く)を返します。
もし、引数にセル範囲を指定した場合は、その最左上セルを対象とします。

標準モジュールに下記コードを貼付けます。

Function GetLinkAdr(Rng As Range) As String
Dim StrAdr As String
Application.Volatile
With Rng.Cells(1)
  If .HasFormula Then
    If InStr(.Formula, "=HYPERLINK") = 1 Then _
        StrAdr = Split(.Formula, Chr(34))(1)
  Else
    If .Hyperlinks.Count > 0 Then _
        StrAdr = .Hyperlinks(1).Address
  End If
End With
GetLinkAdr = StrAdr
End Function
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!