人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

エクセルについて質問です。
(ア)という文字列に(イ)というURLがハイパーリンク設定されているとします。(ア)という文字は青字で下線が入っており、クリックするとサイト(イ)にジャンプする状態です。
このようなセルがA1?A99方向に並んでいるのですが、これらのセルから(イ)だけを抽出する方法はありますか?
ハイパーリンクの編集や、ジャンプ先のURLを手作業で拾ってくるより効率的な関数などがあれば教えてください。

●質問者: bar_emanon
●カテゴリ:コンピュータ インターネット
✍キーワード:URL エクセル クリック サイト ジャンプ
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● SALINGER
●30ポイント

隣のB列にアドレスだけを挿入するマクロを自作してみました。

Sub AddLink()
 Dim hLink As Hyperlink
 For Each hLink In ActiveSheet.Hyperlinks
 Cells(hLink.Range.Row, 2).Value = hLink.Address
 Next
End Sub
◎質問者からの返答

自作マクロ、ありがたいです!


2 ● SALINGER
●30ポイント

A列以外にもハイパーリンクがあるとまずいのでちょっと変更

Sub AddLink()
 Dim hLink As Hyperlink
 For Each hLink In ActiveSheet.Hyperlinks
 If hLink.Range.Column = 1 Then
 Cells(hLink.Range.Row, 2).Value = hylink.Address
 End If
 Next
End Sub

ユーザー定義関数を作ってみるとこんな感じ。すでにあったら無視して。

指定したセルのハイパーリンク先のアドレスを返す関数

Function AddLinks(target As Range)
 Dim hLink As Hyperlink
 For Each hLink In ActiveSheet.Hyperlinks
 If (hLink.Range.Row = target.Row) And (hLink.Range.Column = target.Column) Then
 AddLinks = hLink.Address
 Exit For
 End If
 Next
End Function
◎質問者からの返答

ご丁寧にありがとうございます!


3 ● ardarim
●50ポイント ベストアンサー

以下のマクロをコピペして、ハイパーリンクのあるシートで実行してください。

B列にURLを書き出します。

Sub ExtractUrl()

 Dim m As Long
 Dim r As Long
 
 m = ActiveSheet.UsedRange.Rows.Count
 
 For r = 1 To m
 If Cells(r, 1).Hyperlinks.Count > 0 Then
 Cells(r, 2).Value = Cells(r, 1).Hyperlinks(1).Name
 End If
 Next r

End Sub
◎質問者からの返答

できました!感謝!

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ