エクセルのハイパーリンクのURLを抽出するため、下記ページを参考にVBA標準モジュールを組みました。


http://okwave.jp/qa1545446.html

その結果、抽出は出来ました。しかし、下記のようにハイパーリンクURLの一部に全角日本語が含まれている場合は日本語部分のみ抽出されません。

http://www.asahi-net.or.jp/~cj7h-mrgc/EMG/french.html#レ・ヴォア

モジュールの改造などが必要かと思うのですが、私はVBAの知識が乏しく方法がわかりません。どなたかアドバイス頂けますでしょうか?

回答の条件
  • 1人3回まで
  • 登録:2007/11/30 22:24:18
  • 終了:2007/11/30 23:16:45

回答(1件)

id:SALINGER No.1

SALINGER回答回数3430ベストアンサー獲得回数9692007/11/30 22:46:03

ポイント60pt

http://okwave.jp/qa1545446.html

のコードの4行目を

linkAddress = r.Hyperlinks(1).TextToDisplay
id:kgfjfdhgyf

ご回答有難うございます。

試してみたものの、ハイパーリンクURLではなく、セル上のテキストデータが表示されるのみでした。

2007/11/30 23:02:47
  • id:SALINGER
    失礼しました。回答した後すぐに表示文字列を変更した場合うまくいかないことに気づいたのですが。
  • id:kgfjfdhgyf
    下記にて何とか抽出することが出来ました。。。

    Public Function linkAddress(r As Range) As String
    If r.Hyperlinks.Count > 0 Then '指定したセルにハイパーリンクオブジェクトがある
    linkAddress = r.Hyperlinks(1).Address
    If r.Hyperlinks(1).SubAddress <> "" Then
    linkAddress = linkAddress & "#" & r.Hyperlinks(1).SubAddress
    End If
    Else
    If InStr(r.Formula, "=HYPERLINK") Then 'HYPERLINK関数を使っている
    linkAddress = Mid(r.Formula, 13, InStr(13, r.Formula, """") - 13)
    Else
    linkAddress = ""
    End If
    End If
    End Function

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません