- ベストアンサー
エクセルでマクロを使い、多数のハイパーリンクを開く
エクセルで、ハイパーリンクのリストがあります。マクロでこのリストのURLをすべてIEで開くようにしたいのです。 ご教示お願いいたします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
範囲の指定ですが、提示した↓だと、アクティブシートのハイパーリンクすべてを対象とします。 Set Rng = ActiveSheet.UsedRange これを、例えば、↓のようにすると、A1:E20内のハイパーリンクだけを対象とします。 Set Rng = Range("A1:E20") これだけのことですので、まずは実際に試してみてください。
その他の回答 (3)
- marbin
- ベストアンサー率27% (636/2290)
#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)
↓でどうでしょう? 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
- marbin
- ベストアンサー率27% (636/2290)
単純にアクティブセルのハイパーリンク を実行する方法です。 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を開く場合は、別々のウィンドウで開くのか、一つのウィンドウ で次々に開いていくのか、でコードが違ってきます。
お礼
早速のご教示ありがとうございました。 1つのURLを開くのは ActiveCell.Hyperlinks(1).Followにて解決できました。 ただ、リスト(たとえば、n1:n10)にハイパーリンクがある場合の 繰り返し処理は上記の ie.Visible = True MyUrl = "http://security.okwave.jp/qa4097240.html"部分を 変更し別途繰り返しの処理を追加すればよいのでしょうか。
お礼
早速のご連絡ありがとうございました。 範囲を指定のところが、勉強不足ですので、 調べて試行してみます。