• ベストアンサー

Excelのwebクエリについて。

Excelは2010です。 webクエリでURLの一部を[ ]を使ってセル値から参照できるパラ-メーターを使用して情報を取りこんでいますが、その場合、テーブルを指定できません。 普通にwebクエリで取り込む時は、取り込む前に取り込みたい場所を→クリックすることで取り込むテーブルを指定することができるのですが、[ ]を使うと値を読み取るまではページが表示されずテーブルを指定できません。 URLの一部は変りますが、取り込むテーブルは同じなので、どうにかテーブルを指定してパラメーター機能を活用する方法はありませんでしょうか。

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

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.3

回答した通り >ふつーにWEBクエリダイアログでURLを呼び出し、 >テーブルを指定してまず一回てきとーな内容でシートにデータを返してから、 >改めてクエリの編集でパラメータを指定する(セルを指定する) とお話しした通りで、出来ますが。 どこかで何かの手順を勘違いされているのではないかと思います。 最初から手順をお話ししますので、その通りやってください。 1.まっさらのシートを用意する 2.WEBクエリを開始する 3.http://www.nankankeiba.com/uma_info/2006105041.do に「移動」する 4.出走履歴にチェックして取り込む 5.既存のワークシートの例えばA5セルに返す   指定のテーブルがシートにダウンロードできたことを確認する 6.右クリックしてクエリの編集を開始、クエリを名前を付けて保存する 7.iqyファイルをメモ帳で開き、例えば次のように書き換え保存する WEB 1 http://www.nankankeiba.com/uma_info/["code","2006105041.do"] Selection=6 Formatting=None PreFormattedTextToColumns=True ConsecutiveDelimitersAsOne=True SingleBlockTextImport=False DisableDateRecognition=False DisableRedirections=False 8.接続でプロパティの定義から参照で保存したiqyファイルに付け替える   併せてパラメータボタンでcodeを次のセルから値を指定する   たとえばD1セル   セルの値が変わると自動更新にもチェックする 9.OKOKOKでダイアログをすべて閉じる   途中にエラーが出ても無視して続行する   D1に 2006105042.do のように記入する。 お話ししている通り、クエリの編集後、テーブルを指定する必要はありません。 #参考 worksheet_changeイベントは、計算式のセルが「計算の元にしている生データを記入したセル」をトリガとして起動させるよう仕込んで使います。

mzakom
質問者

お礼

うわー!!素晴らしい!! やっと思い通りの事ができました!! こちらの知識不足で理解できていませんでしたが、丁寧な説明でやっと理解することができました。 保存してメモ帳で編集して参照できる技があったとは・・・本当に勉強になりましたm(_ _ )m 偶然にもkeithin様みたいな方の目に止まってくれたのは幸運でした(´;ω;`)ブワ VBAで試みたり、チェンジイベントを試してみたり、長時間格闘したので本当に助かりました。ありがとうございますm(_ _ )m

その他の回答 (2)

  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.2

ふつーにWEBクエリダイアログでURLを呼び出し、テーブルを指定してまず一回てきとーな内容でシートにデータを返してから、改めてクエリの編集でパラメータを指定する(セルを指定する)という手順ですから、テーブルを後から指定できないという手順にはならないハズなんですけどね。どういう段取りでやってらっしゃるんですか? その方向で解決がどうしても必要なら、アナタが実際に見ている、実際にパラメータを指定できるサンプルURLを提示してください。 #参考 >「URLの一部を参照にしているセル値が変ると更新」というのができない セルを書き換えたときに自動起動するWorksheet_Changeイベントマクロを使い、WEBクエリを再発行すれば出来ます。 (或いは埋め込み済みのクエリを直接編集してしまう手もありますが、難易度高めかもしれないのでお勧めしません)

mzakom
質問者

お礼

Worksheet_Changeイベントは、パラメーターで読み込むセル値が、「=」などの関数結果なので、その変化には対応していないらしいので使用できないです・・・

mzakom
質問者

補足

何度もお手数おかけしますm(_ _ )m サンプルのURLはこちらです http://www.nankankeiba.com/uma_info/2006105041.do このURLの出走履歴のテーブルのみを取り込む用にしたいのです。 [ ](パラメーター)で指定する部分は「2006105041.do」の部分です。 1度テーブルを指定してとりあえずデータを取り込んで、クリエの編集からパラメータを使用して、URLの指定する部分を[ ]に書き換えて取り込むとテーブルを指定できないのです。やはり回避方法はないのでしょうか。

  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.1

WEBクエリには「URLの一部を[ ]を使ってセル値から参照できるパラ-メーターを使用して情報を取りこんでいます」なんて機能はありません。 当てずっぽの推測では、マクロを使ってWEBクエリの文字列を成型していると言いたかったのでしょうか。 手順: 1.固定のURLとテーブル番号まで指定してWEBクエリとして設定する操作手順を確立する 2.新しいマクロの記録でマクロとして採取する 3.採取したマクロの必要な部分を、セルの記述で補完するように適切に書きかえる 以上で、何の支障もなく使えるマクロを作成できます。 どうしても自作できないときは、このご相談はいったん解決で閉じ、改めてあなたが今使っている「URLの一部を[ ]を使ってセル値から参照できるパラ-メーターを使用して情報を取りこんで」いるマクロの全体をキチンと情報提供するご相談に書きなおして、投稿し直してみたらどうでしょう。

mzakom
質問者

補足

説明下手で申し訳ありません。 このURLの「パラメータの値をセルから入力」の部分をご覧頂ければ私の言いたいことが理解できると思います。 http://www.crystal-creation.com/software/tool/office/excel/external/web-query.htm これの[セルの値が変わるときに自動的に更新する]で、セル値にURLの一部を入力すると、自動でそのweb情報を取り込んでくれるようにしています。 VBAだと、テーブル番号は指定できるのですが、「URLの一部を参照にしているセル値が変ると更新」というのができないので、どうにかwebクエリでテーブル番号も指定できないのかと思ったのです。

関連するQ&A