プロが教えるわが家の防犯対策術!

excelで、複数のセルにurlデータが入っています。
それらを選択した分だけ一度にブラウザで開きたいです。
いわば、ハイパーリンクをクリックしてウェブページを1つ開く方法の複数同時版です。

元データは、ハイパーリンクのついてないurlデータ入りセルが多数です。

ネット検索すると、ハイパーリンク付きのセルならマクロで複数一度に開く方法がのってました。
ところが、多数のすっぴんurl入りセルにハイパーリンクを付ける方法がわからず、代替案としてHYPERLINK()関数で隣列にざっとハイパーリンクを作りましたが、それだとネット検索で書かれているような、マクロで一括オープンの方法、例えばhttp://www.excel.studio-kazu.jp/kw/2009110520415 …などです。他の似たようなコードも試しました。が起動しませんでした。直でセルにハイパーリンクをつけてないとネット検索の方法は無効でした。

このような状況です。つまり、
「多数のすっぴんurl入りセルにハイパーリンクを直接一度に付ける方法」
もしくは
「HYPERLINK()をかませて間接的に取得したハイパーリンクデータからマクロ等で一括でurlを開く画期的な方法」
があれば、この問題は解決するといった状況ではないかと思います。

EXCELのプロのみなさん、アドバイスをよろしくお願いします。

A 回答 (2件)

#「EXCELのプロ」ではありませんが。

。。

Sub macro1()
     Dim myLnk As Range
     For Each myLnk In Selection
         On Error Resume Next
         ActiveWorkbook.FollowHyperlink myLnk.Text
         On Error GoTo 0
     Next
End Sub

でもできそうですが、PCのスペックやインターネットキャッシュの状態によっては、意図しただけのウィンドウが開かないようですので、以下でいかがでしょうか?

Sub Macro2()
     Dim objIE As Object
     Dim myLnk As Range
     Set objIE = CreateObject("InternetExplorer.Application")
     objIE.Visible = True
     For Each myLnk In Selection
         objIE.navigate2 myLnk.Text, 2048
     Next
     objIE.Quit
     Set objIE = Nothing
End Sub
    • good
    • 0

とりあえず簡単のため、「URL」は「httpから始まる文字列」とします。



sub macro1()
 dim c as range
 dim c0 as string
 set c = cells.find(what:="http*", lookin:=xlvalues, lookat:=xlpart)
 if c is nothing then exit sub
 c0 = c.address

 do
  activeworkbook.followhyperlink address:=c.value
  set c = cells.findnext(c)
 loop until c.address = c0
end sub



#そこに「URL」が(文字列として)あるのですから。わざわざハイパーリンクを埋め直すとか回り道せず、直接そのURLを開きます。
    • good
    • 0
この回答へのお礼

お礼がおくれました。とても参考になりました。

お礼日時:2013/05/25 14:27

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