• ベストアンサー

VBAで情報を付加して特定のWebページを開く方法

いつもお世話になっております。 ExcelVBAで、情報を付加したWebページを開こうとしていますが、うまくいかず困っております。 たとえば、Shell "explorer.exe http://www.post.japanpost.jp" は表示されますが、次は表示されません。 Shell "explorer.exe http://www.post.japanpost.jp/cgi-zip/zipcode.php?zip=1070052" VBAで、このような情報を付加して、ブラウザを起動させるには、どうしたらよろしいでしょうか。 どうか、どなたかお助けいただけないでしょうか。

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

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.4

こんばんは。 こういうことかな? 本来は、定数のURLでなくて、全体をサブルーチンにして、URLを引数にしてあげると、便利です。 Sub TEST_IE() Dim IE As Object Const URL As String = "http://www.post.japanpost.jp/cgi-zip/zipcode.php?zip=1070052" Set IE = CreateObject("InternetExplorer.Application") With IE   .Visible = True   .Navigate URL   Do While .Busy    DoEvents   Loop   Do Until .ReadyState = 4    DoEvents   Loop End With Set IE = Nothing End Sub

mitinaga
質問者

お礼

ご回答、ありがとうございました。 この方法も、XP+IE6で、問題なく動作しました。 ありがとうございます。 皆様に感謝しております。 なお、下でも書かせていただきましたが、私の環境の問題なのかもしれませんが、Vista+IE7でやってみると、後制御できなくなってしまいました。IE7の問題なのでしょうか。 皆様、いろいろな情報を、ありがとうございます。

その他の回答 (6)

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.7

こんばんは。 #5 の回答者です。 >Vista+IE7の環境 の場合は、XP+ IE7と違うのは、セキュリティのオプションがIE7に出来ています。 インターネット オプション の中の、セキュリティ[タブ]の下の、 保護モードを有効にするのチェック・ボックスを外せばよかったような気がしますね。

mitinaga
質問者

お礼

Wendy02 様 ありがとうございます。 保護モードをはずしたら、みごとOKでした。 完全に制御できました。 余計なウィンドウも表示されず、Inputボックスへの入力もできました。 みなさま、どうもありがとうございました。 感謝申し上げます。

  • lark_0925
  • ベストアンサー率63% (37/58)
回答No.6

>知識がないもので、もしできましたら、なぜ"3つで囲うのか、 >お教えいただけないでしょうか。 Shell関数のコマンドライン指定って昔の仕様です。 現在のUrlには、認識できない文字が含まれているんです。 ですから、Urlは、ひとくくりのオプション文字列であることを ""ダブルコーテーションでUrlを囲むことで教えてやらなければなりません。 VBAでは、文字列は、 Dim a as string a="abc" Msgbox a というように""で囲むという文法がありますよね!! では、"abc"という"を含めて変数aに入れるには、 文字列を囲む"と区別するために二つ続けて""と指定しなければ なりません(これは、決まりごとです)。 よって、 Dim a as string a="""abc""" msgbox a これを実行すれば、 "abc" と表示されますよね? これが理解できれば、 Shell "explorer.exe " & _ """HTTP://www.post.japanpost.jp/cgi-zip/zipcode.php?zip=1070052""" これの意味も理解いただけるかと思います。

mitinaga
質問者

お礼

lark_0925 様 ありがとうございました。 """の意味も大変よく理解できました。 ご親切に感謝しております。

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.5

こんばんは。 >Vista+IE7でやってみると、接続したIEと、接続できないIEの2つが起動してしまいます。 私のほうは、XP+ IE7 で、Vista ではありませんから、IE7 の問題ではなさそうです。 私には分かりません。ただ、本来は、開くだけなら、Shell で十分だと思います。 「接続したIE」 と「接続できないIE」 というイメージが良く分からないのですが、もし、最初に、IE を起動しているものがあり、それを利用するというなら、 Set IE = CreateObject("InternetExplorer.Application") というコードは違います。WMI で取得したほうがよいです。 IE オブジェクトを使う理由というのは、その後の処理を自動でExcelにインポートするからなのです。ただし、HTML コードを読むという作業が必要になりますが。

mitinaga
質問者

お礼

Wendy02 さん ご回答、ありがとうございます。 私のVista+IE7の環境では、 Set IE = CreateObject("InternetExplorer.Application") IE.Visible = True が実行されると、「接続中です」と表示されるけど、ずっとどこにも接続できないIEが起動します。さらに、 IE.Navigate URL を実行すると、URLにちゃんと接続しているIEがさらに起動してしまいます。その後のIE.Busy~ やIE.ReadyState~のIEは、どうやら、 最初の「接続中でも接続できない」やつのようです。 いろいろと、ご親切に教えていただき感謝しております。

  • lark_0925
  • ベストアンサー率63% (37/58)
回答No.3

私もIE関連は、 Shell "explorer.exe " & _ """HTTP://www.post.japanpost.jp/cgi-zip/zipcode.php?zip=1070052""" これでOKでしたよ!! 表示は、全角ですが、半角で指定してください

mitinaga
質問者

お礼

lark_0925 様 ありがとうございます! & _ """ ~ """ でOKでした。感謝! です。 知識がないもので、もしできましたら、なぜ"3つで囲うのか、 お教えいただけないでしょうか。

回答No.2

参考ページ変更です。

参考URL:
http://www.ken3.org/cgi-bin/group/vba_ie.asp
mitinaga
質問者

お礼

ご回答、ありがとうございました。 XP+IE6で、問題なく動作しました。 感動しました。ありがとうございます。 感謝しております。 ただ、私の環境の問題なのかもしれませんが、Vista+IE7でやってみると、接続したIEと、接続できないIEの2つが起動してしまいます。対応するオブジェクトが、接続できていないほうのIEになって、その後制御できなくなってしまいます。 どなたか、Vista+IE7でやっていらっしゃる方は、いないでしょうか。

回答No.1

Shellだと開くだけでそのIEをリモートコントロールできないと思います。 通常 ↓ のページのような作業をすると 便利です。 phpやcgiのような動的ページでも開けます。

参考URL:
http://www.ken3.org/vba/backno/vba175.html

関連するQ&A

  • 竹島の郵便番号についての質問です。

    郵便番号検索にて 竹島の郵便番号が検索されません。 郵便局のこのサイトで竹島の郵便番号が検索できないのは手抜かりではありませんか? 実際は、〒685-0000 島根県 隠岐郡 隠岐の島町 竹島ですよね。 http://www.post.japanpost.jp/cgi-zip/zipcode.php?pref=32&city=1325280&cmp=1

  • [ASP]URL付加情報を転用したい。

    こんばんわ。 連続書き込みをお許しください。 Response.Redirect = "b.html" でBのページに移動できますよね? たとえばこのページが・・・ a.html?ID=12345&TYPE=abc&ZONE=C110 などのページだとします。 単純にBのページを表示したいのなら、さっきのようになコマンドでいいのですが、AのページのURLに付加されている情報をあわせてそのまま表示したい、つまり、 b.html?ID=12345&TYPE=abc&ZONE=C110 というばあい、何かいい方法はありませんか? ちなみに付加情報はPOST情報だったりします・・・。 宜しくお願いいたします。 JavaScriptで出来ると考え、 http://oshiete1.goo.ne.jp/kotaeru.php3?q=649582 に書き込んでみましたがCGIを提案されています。 JavaScriptで無理でCGIでとなれば、出来ればASPで書きたいのですが。。。 いい方法はないでしょうか? 宜しくお願いいたします。

  • ウェブページが表示された瞬間にwwwを付加したい

    自宅サーバを構築している初心者です。 CentOS5 httpd2.2 【やりたいこと】 ヤフーのように http://yahoo.co.jpとしてアクセスすると、このアドレスのままページが表示されるのではなく、 ページが表示された瞬間にhttp://www.yahoo.jpと「www」がブラウザに付加したいのです。 これはどういう仕組みなのでしょうか? Apacheウェブサーバの設定?(転送設定関係?) 【外部DNS】 ダイナミックDNS(MyDNS.JP)を利用 ドメイン名:sample001.jp(独自ドメイン) MXレコード:mail ホスト名1:www ホスト名2:mail このように設定していて現状では http://sample001.jp http://mail.sample001.jp http://www.sample001 のどれでアクセスされてもページが表示されます。 この意味は分かります。 自分サーバも http://sample001.jpでアクセスされたら http://www.sample001.jpと「www」を付加するように設定したいのですが外部DNSの設定の問題なのか、Apacheウェブサーバの設定なのか分かりません。 なApacheの設定ファイル(/etc/httpd/conf/httpd.conf)は ServerName www.sample001.jp:80 としています。 よろしくお願いします。

  • 郵政省の郵便番号を取り込みたい(MySQL)

    MySQLは使い出したばっかりです。 いろいろなサイトを参考に、 データベース、テーブル、フィールドの作成、SELECT、UPDATE文等は、一通り使ってみたのですが、 大きなデータベースから検索等をしたいと思い、郵政省のダウンロードしたCSVからMySQLにインポートしたいと思います。 http://www.post.japanpost.jp/zipcode/download.html 13104,"160 ","1600005","トウキョウト","シンジュクク","アイズミチョウ","東京都","新宿区","愛住町",0,0,0,0,0,0 のように、ダブルクォートで囲まれており、 CSVファイル内には、フィールド名はありません。 フィールドに関しては、 http://www.post.japanpost.jp/zipcode/dl/readme.html に掲載されています。 これをインポートして、Mysqlのtestデータベースの、zip_codeというテーブルを作ろうと思います。 この場合、どういった順序で作業をすれば、データベースにすることができますでしょうか? コマンドラインで行おうと思います。 フィールドの定義は先に行っていなければならないのでしょうか?フィールドの定義が終わってから、なにかしらのコマンドで、データベースに流し込むことができるのでしょうか?

    • ベストアンサー
    • MySQL
  • 郵便番号検索システム

    ↓のような郵便番号検索システムを作ろうと思っています。 http://www.yu-bin.net/ データ(http://www.post.japanpost.jp/zipcode/dl/oogaki.html)をDBに取り込むことは出来ましたが、カテゴリわけなどどのようにすればいいのかが疑問です… 参考URLなどありましたら教えていただければ嬉しいです。

    • ベストアンサー
    • PHP
  • 空白が必要な理由を教えてください。

    http://okwave.jp/qa/q5024766.html を参考にVBAでフォルダを開いたのですが 一つ疑問があります。(素朴な疑問です) Sub OpenFolders() Dim targ As String targ = "C:\" Shell "C:\Windows\Explorer.exe " & targ, vbNormalFocus  '空白あり End Sub のコードは 「Shell "C:\Windows\Explorer.exe "」のexeの右隣に空白が入りますがなぜでしょうか?? Shell関数を使う場合は、空白を入れるのですか? Shell "C:\Windows\Explorer.exe" & targ, vbNormalFocus  '空白なし としたらエラーになりました。 ご教授よろしくお願いします。

  • Operaのサーチiniに郵便番号検索を追加

    タイトル通りですが、アドレスの変更の仕方がわかりません。 ご存知の方教えてもらえませんか? http://search.post.japanpost.jp/7zip/

  • [JavaScript]URLの付加情報をそのまま転用したい!

    こんにちわ。 連続書き込みをお許しください。 location.href = "b.html"; でBのページに移動できますよね? たとえばこのページが・・・ a.html?ID=12345&TYPE=abc&ZONE=C110 などのページだとします。 BODYのonloadアクションで単純にBのページを表示したいのなら、さっきのように location.href = "b.html"; でいいのですが、AのページのURLに付加されている情報をあわせてそのまま表示したい、つまり、 b.html?ID=12345&TYPE=abc&ZONE=C110 というばあい、何かいい方法はありませんか? ちなみに付加情報はPOST情報だったりします・・・。 宜しくお願いいたします。

  • VBAで開いているフォルダーを最前面に表示

    Excel VBAで指定したフォルダーを開きたいのですが、 Shell "Explorer.exe "・・・を使用すると幾つもフォルダーが開きます。 フォルダーが開いているかのチェックはできるのですが、 後ろに隠れているフォルダーを最前面に表示する方法がわかりません。

  • Opera Serch.iniに日本郵便を追加したいのですが。

    Opera Serch.iniに日本郵便(郵便番号検索と住所検索)を追加したいのですが。上手く行きません。ご存知の方教えて頂けませんか。 検索の追加では動きませんでした。 http://www.post.japanpost.jp/zipcode/index.html OS:VISTA Opera Ver9.23

専門家に質問してみよう