• ベストアンサー

エクセルでマクロを使い、多数のハイパーリンクを開く

エクセルで、ハイパーリンクのリストがあります。マクロでこのリストのURLをすべてIEで開くようにしたいのです。 ご教示お願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • izmlz
  • ベストアンサー率55% (67/120)
回答No.3

 範囲の指定ですが、提示した↓だと、アクティブシートのハイパーリンクすべてを対象とします。  Set Rng = ActiveSheet.UsedRange  これを、例えば、↓のようにすると、A1:E20内のハイパーリンクだけを対象とします。  Set Rng = Range("A1:E20")  これだけのことですので、まずは実際に試してみてください。

その他の回答 (3)

  • marbin
  • ベストアンサー率27% (636/2290)
回答No.4

#1です。 セル範囲をループ処理するサンプルです。 Dim r As Range Dim c As Range Set r = Worksheets(1).Range("N1:N10")  for Each c In r MsgBox c.Address Next c

  • izmlz
  • ベストアンサー率55% (67/120)
回答No.2

↓でどうでしょう? Sub test()  Dim Rng As Range  Dim myHyp As Hyperlink  Dim myHyps As Hyperlinks    Set Rng = ActiveSheet.UsedRange '範囲を指定  Set myHyps = Rng.Hyperlinks    For Each myHyp In myHyps   myHyp.Follow NewWindow:=True  Next    Set Rng = Nothing  Set myHyps = Nothing End Sub

参考URL:
http://www2.odn.ne.jp/excel/waza/macro.html
hakuki
質問者

お礼

早速のご連絡ありがとうございました。 範囲を指定のところが、勉強不足ですので、 調べて試行してみます。

  • marbin
  • ベストアンサー率27% (636/2290)
回答No.1

単純にアクティブセルのハイパーリンク を実行する方法です。 ActiveCell.Hyperlinks(1).Follow ハイパーリンクのアドレスを取得する方法です。 ActiveCell.Hyperlinks(1).Address 特定のURLをIEで開く方法です。 Dim ie As Object Dim MyUrl As String Set ie = CreateObject("internetexplorer.application") ie.Visible = True MyUrl = "http://security.okwave.jp/qa4097240.html" ie.navigate MyUrl Do While (ie.busy = True) And (ie.readyState <> READYSTATE_COMPLETE) DoEvents Loop ただし、複数のURLを開く場合は、別々のウィンドウで開くのか、一つのウィンドウ で次々に開いていくのか、でコードが違ってきます。

hakuki
質問者

お礼

早速のご教示ありがとうございました。 1つのURLを開くのは ActiveCell.Hyperlinks(1).Followにて解決できました。 ただ、リスト(たとえば、n1:n10)にハイパーリンクがある場合の 繰り返し処理は上記の ie.Visible = True MyUrl = "​http://security.okwave.jp/qa4097240.html"​部分を 変更し別途繰り返しの処理を追加すればよいのでしょうか。

関連するQ&A