• ベストアンサー

エクセルのwebクエリについて

A1に銘柄コード(4桁の数字)が入力されている場合、 B1以下にデータを取得するマクロを作りたいと考えています。 webクエリ機能を使えばデータを取得できるのはわかったのですが、 マクロのコードにA1の数値を参照させる方法がわかりません。 当方の環境は Windows XP Excel 2007 です。 どうか皆様よろしくお願い致します。

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

  • ベストアンサー
  • web2525
  • ベストアンサー率42% (1219/2850)
回答No.2

With ActiveSheet.QueryTables.Add(Connection:= _ "URL;http://table.yahoo.co.jp/t?s=6650.T&g=d", Destination:=Range("A1")) WEBクエリーをマクロの記録で実行すると最初の部分がこんな感じになると思います。 "URL;http://table.yahoo.co.jp/t?s=6650.T&g=d" この部分がクエリーで取り込むHPアドレスです s=6650の6650が銘柄コードに当たります。 "URL;http://table.yahoo.co.jp/t?s=" & Range("A1").Value & "T&g=d" へ変更すれば目的の銘柄のページが選択可能かと思います(未検証ですが) ただし、ページによってテーブル番号が変更になる場合があるので、すべての銘柄で目的のデータが取り込めるかは微妙なところです。 そのあたりの工夫も必要になります。

rabbit78
質問者

お礼

なるほど。Rangeによって参照する事ができるのですね。 イメージ通り取り込むことができました。ありがとうございました。

その他の回答 (1)

  • web2525
  • ベストアンサー率42% (1219/2850)
回答No.1

WEBクエリーが外部データの取り込み>新しいWEBクエリーの事と前提しての話になりますが。 どのようなページから取り込みを行うか分かりませんが、WEBクエリーをマクロにした場合、 WebTables ="xx"   'xx=テーブル番号 で選択されたテーブルを取り込む形となります。 これはそのページ内のテーブルの並び順に番号が振られています、銘柄コードとテーブル番号の関連付けが出来ていないとテーブル番号の指定は出来ないと思われますが、そのあたりは解決しているのでしょうか?

rabbit78
質問者

補足

説明不足につき申し訳ありません。 データの取得先はヤフーファイナンスを想定しています。 webクエリを使用して銘柄の時系列データを取り出すマクロを マクロの自動記録機能にてコード作成する事はできるのですが、 これだと1つの銘柄しか取り出す事ができません。 (自動記録の際に使用した銘柄のみ) そこで、シートのあるセル(例えばA1)に銘柄コードを入力し、 これをマクロにて読み込んで取り込めればと考えています。 (A1セルを可変にしたい) 引き続きよろしくお願い致します。

関連するQ&A