• ベストアンサー

エクセルマクロによるハイパーリンク

エクセルマクロにてブラウザを起動させ指定サイトを開く方法を教えて下さい。 なお、セルに直接URLを入力し同セルをダブルクリックすれば可能な事は承知しています。 以上、よろしくお願いします。

  • list
  • お礼率50% (206/408)

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

  • ベストアンサー
  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.2

エクセルの自動ハイパーリンク機能が嫌いで切っている一人です。 でも、時々URL群を記入したものからブラウザを起動したいことがあるので、ダブルクリックでセル値のURLへリンクさせる以下のマクロを使用しています。 >IEは起動が遅く、更に、2つ、3つと同時に開こうとすると幾つもIEが >起動されるため~~ 同様に感じましたので、ブラウザはIEのままですが、一度開けば以後はそれを利用するようにして、複数のブラウザが次々と起動されることがないようにしています。ご参考まで。 (エラー処理で判定していますが、エラーの種類を忘れてしまいました。一度エラー処理をはずして、そちらの環境でも同じエラー番号でOKかご確認ください。) Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)   If Left(Target.Text, 4) <> "http" Then Exit Sub   UrlDisp (Target.Text) End Sub Sub UrlDisp(url As String) Static IE As Object   On Error Resume Next   IE.Navigate (url)   If Err = 91 Or Err = -2147417848 Then     Set IE = CreateObject("InternetExplorer.Application")     IE.Navigate (url)   End If   On Error GoTo 0   IE.Visible = True End Sub

list
質問者

補足

早速の御回答ありがとうございました。 確認させていただいたところ 複数回IEを起動しても、複数のIEが起動するのではなく、同じIEで処理されたのは確認しましたが、2回目以降は別のタグにすることは出来ないのでしょうか。 以上、よろしくお願いします。

その他の回答 (6)

  • KenKen_SP
  • ベストアンサー率62% (785/1258)
回答No.7

標準モジュールにコピペしてるんじゃないかな・・? #4 ご回答の貼り付け場所は、シートモジュールですよ。

list
質問者

お礼

御回答いただいた方々 何が原因であったか判断がつきませんが 希望通りに動作する様になりました。 ありがとうございました。 今後ともよろしくお願いします。

list
質問者

補足

御回答ありがとうございました。 初めは、#4に記載の Option Explicit Dim objIE As Object ~    Cancel = True End Sub をシートモジュールに記載し、その後を標準モジュールに記載しました。 今回、全てをシートモジュールに書き換えましたがIEがタグではなく、毎回、別のIEが起動されました。 なお、記載していませんでしたがIEのバージョンは8です。 以上、ご迷惑をかけますが、よろしくお願いします。

  • watabe007
  • ベストアンサー率62% (476/760)
回答No.6

>既に解除したのですが・・ >上手く出来ません。 Excelのセルに設定されたハイパーリンクをまとめて解除する http://www.atmarkit.co.jp/fwin2k/win2ktips/870hyperlink02/hyperlink02.html

list
質問者

補足

ハイパーリンクとして設定されているセルは全て解除しました。 ですが、上手くいきません。

  • watabe007
  • ベストアンサー率62% (476/760)
回答No.5

セル上のURLがハイパーリンクにならないように [ツール]-[オートコレクトのオプション]-[入力オートフォーマット]タブ □インターネットとネットワークのアドレスをハイパーリンクに変更する ↑チェックを解除してくださいね

list
質問者

補足

何度も申し訳ありません。 既に解除したのですが・・ 上手く出来ません。

  • watabe007
  • ベストアンサー率62% (476/760)
回答No.4

ダブルクリックでの実行がお望みなら (fujillinさんのコードを一部お借りしています。) Option Explicit Dim objIE As Object Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)    If Left(Target.Text, 4) <> "http" Then Exit Sub    UrlDisp (Target.Text)    Cancel = True End Sub Sub UrlDisp(url As String)    On Error Resume Next    objIE.Navigate2 url, &H800    If Err Then       Set objIE = CreateObject("InternetExplorer.Application")       objIE.Visible = True       objIE.Navigate url    End If    On Error GoTo 0    AppActivate objIE End Sub

list
質問者

補足

私の間違いがありました。 起動はしました。 でも、複数のIEが起動されてしまいます。

  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.3

No2です。 こちらにタブブラウザの環境がないので、わからないのですが… 検索して見ると、↓のような情報がありました。 Navigate2メソッドを使用すれば、良いらしいです。 http://www.happy2-island.com/vbs/cafe02/capter00711.shtml

list
質問者

補足

再三、御回答いただきありがとうございました。 初歩的な質問で申し訳ありませんが いただいたサイトを確認しテストしたのですが上手く動作しません。 標準モジュールに入れたのですが間違いなのでしょうか。

  • watabe007
  • ベストアンサー率62% (476/760)
回答No.1
list
質問者

補足

早速の御回答ありがとうございました。 起動させることが出来ました。 ただ、IEは起動が遅く、更に、2つ、3つと同時に開こうとすると幾つもIEが起動されるため、IE以外のブラウザを使用するかタグを使用して開くことは出来ないでしょうか。 再度、申し訳ありませんが、よろしくお願いします。

関連するQ&A

  • エクセル ボタンへのマクロのやり方

    エクセルを使用して、エクセル内に作成した"ボタン"をクリックすると指定のURLへ飛べるようにしたいのですが、どうやったらいいのでしょうか? 通常セル内に文字を入力してハイパーリンクをやればURLに飛べると思いますが、"ボタン"を付けた場合右クリックをしてもハイパーリンクの文字が出てきません。 マクロを使えば出来ると思うのですが、マクロもホントのホントに初心者なのでよく分かりません。 どなたか詳しく教えて頂けないでしょうか。 よろしくお願いいたします。

  • エクセルのハイパーリンクが飛ばない

    エクセルのセルに文字を入力し、その文字をクリックすると YOUTUBEのある動画に飛ぶようにしようと思い ハイパーリンクの設定を行いましたが 同じ方法でいくつかのセルに設定し、ちゃんとリンクが飛ぶものも ありますが、殆どがその文字をクリックするとブラウザーが 立ち上がって 「お使いのブラウザーは最新です」という訳の 分からないメッセージが出てきます。 ハイパーリンクのURL間違いかな? と思い そのセルで右クリックして、ハイパーリンクの設定を押して 下側のアドレスという項目を確認すると URL自体は間違えてないです。 確かめる為に、そのURLをコピーしてブラウザーのアドレスの所に コピペしたらちゃんと動画は再生されました。(URL間違いではない) それでは何がおかしいのでしょうか? お詳しい方教えてください よろしくお願いします。

  • エクセルマクロ、ご教示ください。

    このようなことを考えています。   セルA5からA20までに、1から16の番号を入力しています。 このセルA5からA20の範囲の中で、セルをダブルクリックすると、ダブルクリックしたセルの番号を常にセルC5に表示させたいのです。 例えば、セルA6をダブルクリックすると、入力されている番号2を、セルC5に表示、      セルA8をダブルクリックすると、番号4をセルC5に表示 このような、マクロは可能でしょうか。 どなたか、よろしくお願いします。 エクセルは2003を使用しています。

  • excelのハイパーリンクの文字が化ける

    excel のセルに、urlアドレスを入力し、ハイパーリンクをつけています。 そのハイパーリンクをクリックして、ブラウザでみると、URLの一部が文字化けして、該当ページはありません、という表示がでてしまいます。 URLの文字列には、#が入っており、 ブラウザのアドレスをみると、「#」が、「%20-%20」 に変わってしまっています。 たとえば、下記のようなアドレスの形です。 アドレス例:http://okwave.jp/question/index#001 (エクセルのセル)   →http://okwave.jp/question/index%20-%20001 (ブラウザのアドレスバー) microsoft office2010 で、InternetExplore 11 を使用しています。 解消方法をお分かりになる方がいらっしゃいましたら、ご教授ください。 宜しくお願いいたします。

  • エクセル2013 マクロの最大値

    エクセル初心者です。セルをダブルクリックしたときに、最大値に+1の値をセルに自動入力したいのですが・・・。まず、シート1のC列とシート2のC列から最大値を探し、その値+1の数字を入力したいです。現在の時点で3、4、5の列にデータが入力されているのでC6をダブルクリックしたときに、マクロ実行されるようにしたいです。データは、増えていくのでC6は固定ではありません。C列の未入力のセルをダブルクリックしたときに、自動入力されるということです。 おわかりの方がいらしたら、ご教示お願いいたします。

  • エクセルのセルのURLからのハイパーリンクを有効にする方法

    エクセルのセルにURLが入力されているのですが、 これを直接クリックして該当するページを見れるようにしたいのですが、これは可能でしょうか? 現状、手でいちいちブラウザへコピー&ペーストを行っているのですが、これではあまりにも非効率的なので。 以上、よろしくお願いします。

  • ハイパーリンクのマクロ起動?

    エクセル上のA1セルにBeckyメールへのハイパーリンクを設定しているのですがこのセルをクリックせずマクロでメール起動出来ませんか?

  • エクセルで特定のセルに入力後エンターを押すとマクロが起動

    エクセルで特定のセルに入力後エンターを押すとマクロが起動 エクセルで、ファームで作成したボタンを押すとマクロが起動するように して有ります。 記憶させたマクロの起動にはファームで作成したボタンを右クリックし 「マクロの登録」でモジュールを登録する方法しか知りません。 これを特定のセルにデータを入力後エンターを押して入力値が確定されたら このマクロが起動するようにするにはどうすればいいのでしょうか?

  • エクセルでセルをクリックすると“○”と入力

    エクセルでセルをクリック(またはダブルクリック)すると“○”と入力され、もう一度クリックすると空欄に戻るよう設定したいのですが、マクロを使わないとできないのでしょうか?マクロを使用せずセルの設定でもできますか?どちらでできるのでしょうか、またその方法も教えてください。

  • エクセルで指定したセルがある条件になると指定したマクロが起動

    エクセルで指定したセルがある条件になると指定したマクロが起動 エクセルでシート1のセルB5の値が、文字の種類に限らず、 5ケタ以上になったら指定したマクロを起動させるように 出来ますでしょうか?