アプリ版:「スタンプのみでお礼する」機能のリリースについて

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

以上、よろしくお願いします。

A 回答 (7件)

エクセルの自動ハイパーリンク機能が嫌いで切っている一人です。


でも、時々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

この回答への補足

早速の御回答ありがとうございました。

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

以上、よろしくお願いします。

補足日時:2009/07/31 13:09
    • good
    • 0

標準モジュールにコピペしてるんじゃないかな・・?


#4 ご回答の貼り付け場所は、シートモジュールですよ。

この回答への補足

御回答ありがとうございました。

初めは、#4に記載の
Option Explicit
Dim objIE As Object

   Cancel = True
End Sub
をシートモジュールに記載し、その後を標準モジュールに記載しました。

今回、全てをシートモジュールに書き換えましたがIEがタグではなく、毎回、別のIEが起動されました。

なお、記載していませんでしたがIEのバージョンは8です。

以上、ご迷惑をかけますが、よろしくお願いします。

補足日時:2009/07/31 22:57
    • good
    • 0
この回答へのお礼

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

お礼日時:2009/08/02 11:05

>既に解除したのですが・・


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

この回答への補足

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

補足日時:2009/07/31 22:05
    • good
    • 0

セル上のURLがハイパーリンクにならないように


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

この回答への補足

何度も申し訳ありません。

既に解除したのですが・・
上手く出来ません。

補足日時:2009/07/31 20:29
    • good
    • 0

ダブルクリックでの実行がお望みなら


(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

この回答への補足

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

補足日時:2009/07/31 21:12
    • good
    • 0

No2です。



こちらにタブブラウザの環境がないので、わからないのですが…

検索して見ると、↓のような情報がありました。
Navigate2メソッドを使用すれば、良いらしいです。
http://www.happy2-island.com/vbs/cafe02/capter00 …

この回答への補足

再三、御回答いただきありがとうございました。

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

補足日時:2009/07/31 19:33
    • good
    • 0

この回答への補足

早速の御回答ありがとうございました。

起動させることが出来ました。
ただ、IEは起動が遅く、更に、2つ、3つと同時に開こうとすると幾つもIEが起動されるため、IE以外のブラウザを使用するかタグを使用して開くことは出来ないでしょうか。

再度、申し訳ありませんが、よろしくお願いします。

補足日時:2009/07/31 06:39
    • good
    • 0

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