[[20091105204156]] 『ハイパーリンクの一括オープン』(龍の字) >>BOT

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『ハイパーリンクの一括オープン』(龍の字)

[エクセルのバージョン]Excel2003,Excel2002
[OSのバージョンの例] WindowsXP

ハイパーリンクについて教えてください。よろしくお願いします。

A1セル には ヤフーのURL、A2セル には 楽天のURLというようにA1からA10までいろいろなURLを入力するとします。

何かボタンを押せば、A1からA10のセルの中でURL入力があるセルのハイパーリンクをブラウザの複数タブで一括に開く、、というような事がやりたいですが可能でしょうか?

セルにURL入力があるか、確認範囲をA1からA20など任意で設定でき、セルが空欄の場合
そのセルはスキップし最後のセルまで確認、URLがあればリンクを開く、、というものです。

範囲確認はA1〜A10

もし、A1にハイパーリングがあれば、そのURLを開く

もし、A2が空白なら、次のセルを確認する

もし、A3にハイパーリンクがあれば、そのURLを開く

A10まで繰り返し

というイメージです。

登録URL数や、登録していくURLが定期的に変わるので、ブラウザのタブのグループ化
では都合が悪く困っております。
今、毎日20くらいのURLを一つ一つクリックして開いておりまして、自動化できないかと
質問させていただきました。

解決方法のわかる方、アドバイスを何卒お願いします。


 >確認範囲をA1からA20など任意で設定でき
 ここのイメージがよくわかりません。

 事前に範囲を選択する?
 どこかに範囲を入力する?
 ボタンを押したら、範囲の確認がある?

 とりあえず、二つ作ってみました。
 ひとつは、選択している範囲で開きます。
 「列全体」とかで選択すると
 大変なことになるかもしれません。

 もうひとつは、A列の最終行までの範囲にしています。

 IE7で動作確認をしました。
 実行前にIEが開いていたら
 その続きに開きます。

 '------
Sub 選択範囲の()
Dim sr As Range
    For Each sr In Selection
        If sr.Hyperlinks.Count > 0 Then
            sr.Hyperlinks(1).Follow
        End If
    Next
End Sub
 '------
Sub A列の()
Dim i As Long
    For i = 1 To Range("A" & Rows.Count).End(xlUp).Row
        If Range("A" & i).Hyperlinks.Count > 0 Then
            Range("A" & i).Hyperlinks(1).Follow
        End If
    Next
End Sub
 '------

 (HANA)


返事遅れてしまいました。
指導いただいたヒントを元にして、試行錯誤でやっと反映ができました。

マクロボタン作るの初めてだったのですが、教えていただいたコードを
貼り付ければそのままできました。

指導いただいた内容の使い方がよくわからなかったのですが、
セルA列にたくさんリンクを入力した上で、タブで一括オープンしたい部分のセル範囲を選択し、
ボタンを押したらブラウザのタブで一括にオープンしてくれました。
本当にありがとうございました。

事後ながらですが、、、、

>確認範囲をA1からA20など任意で設定でき

 ここのイメージがよくわかりません。
 事前に範囲を選択する?
 どこかに範囲を入力する?
 ボタンを押したら、範囲の確認がある?

ちょっと伝わりにくかったですね。申し訳ないです。

A列の最終行までの範囲で全部のセルをチェックし、データが入っているセルのURLをタブで開く
ってのは大変だと思いました。ですので

例えば

A2セルに、検索開始セル番地入力できるようにする
B2セルに、検索終了セル番地入力できるようにする
C2あたりに実行ボタンがある。

A3-A100まで、サイトのURLが入力されている。

A2セルに 3  B2セルに 50 と入力しボタンを押すと
A3-A50の、47個のURLLがタブで一括に開く

そういう意味でした。前回教えていただいたものでも十分満足
しておりますが、セルの範囲選択ができればなおうれしいです。

実現可能でしょうか?

厚かましい依頼だと重々思っておりますが、可能であれば
何卒お願いいたします。

PS

毎日のこれまでの苦行が、あなた様のおかげですごく楽になりました。
感謝しております。後に続く人も幸せになれると思います。


 そう言って頂けて嬉しく思います。

 >A2セルに 3  B2セルに 50 と入力しボタンを押すと
 >A3-A50の、47個のURLLがタブで一括に開く
 この実現は難しい事ではありません。

 ((A列の)) のマクロで
 >    For i = 1 To Range("A" & Rows.Count).End(xlUp).Row
 この一行が
  A列の「1」行目から、A列の「入力がある最終」行まで
 をあらわしています。

 また、VBAで A2セルに入っている値 は
 Range("A2").Value
 と書けますので
  「A2セルに入っている値」の行から「B2セルに入っている値」の行まで
 でしたら、先の部分を

    For i = Range("A2").Value To Range("B2").Value

 に変更してみてください。

 ちなみに、上に載せた ((A列の)) のマクロは
 >A列の最終行までの範囲で全部のセルをチェックし、
 >データが入っているセルのURLをタブで開く
 と言うコードに成っています。

 コード自体は大変ではないですが
 マシンや実際にページを見る人は
 大変かもしれません。^^;

 (HANA)

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.