• ベストアンサー
  • 困ってます

ExcelVBAの繰り返し処理でwebクエリの取込みできますか。

こんにちは。VBA初心者の駆け出しです。 よろしくお願いします。 「外部データの取込み」→「新しいwebクエリ」からデータを取り込んで、集計するマクロに取り組んでいますが、 webクエリの部分はマクロの記録で自動記述されたものを使っています。 URLが指定されるので、変数をおいてみたけどダメでした。 そもそも外部デ-タの取り込みは、変数使えないのでしょうか? すみません、データベースがサイトにしかなくて、webクエリしか方法がないのですが。。 サイトが(データが)膨大で、取り込む回数が100を超えるんで、URLだけ変更して、同じ記述を繰り返して使ってるのですが、 それだけでモジュール2つにしないとエラーになってしまいます。なんとかURLの部分を変数にできないか、とお助けをお願いします。もくはwebクエリを保存して、そのファイルを利用できないでしょうか? 各webページは同形式です。 未熟ながらloopが使えれば、と考えたのですが、脳が足らなくて、こちらに始めて投稿した次第です。説明分かりづらい所があったらご指摘お願いします。 環境: win2000 XP Officce ver.2002 2003 混合した環境です。 マクロを保存先のExcelは2003です。

共感・応援の気持ちを伝えよう!

  • 回答数1
  • 閲覧数771
  • ありがとう数4

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

  • ベストアンサー
  • 回答No.1
  • popesyu
  • ベストアンサー率36% (1782/4883)

できますよ。 今のコードがどうなっているのかがよくわからないのですが、マクロでやっているのなら、クエリファイルを読み込みにいくコードまでは自動で作ってくれるはずですから、あとはそのクエリファイルを予め作っておけばよいだけです。 webクエリのファイル(*.iqy)の中身はただのテキストファイルですので、一つ試しに作って中の仕様を丸まるコピーすればよいだけです。で条件にあわせてURLやらSelectionの部分を置き換えると。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

回答有難うございます! とりあえず今作ったものの一部、webクエリの部分です。 -------------------------- Sub Macro1() Sheets(1).Select Columns("A:F").Select Selection.Clear Selection.QueryTable.Delete With ActiveSheet.QueryTables.Add(Connection:="URL;http://news.goo.ne.jp", _ Destination:=Range("A1")) .Name = "news.goo.ne.jp" .FieldNames = True .RowNumbers = False .FillAdjacentFormulas = False .PreserveFormatting = True .RefreshOnFileOpen = False .BackgroundQuery = True ~中略 .Refresh BackgroundQuery:=False End With 行 = 8 列 = 2 取行 = 8 取列 = 9 If Not Cells(行, 列) = "" Then If Not Cells(取行, 取列) = "n" Then Application.Run "取込2" End If End If 'まずシートをクリアして、そこにwebクエリの取り込みをします。 ’取り込んだデータをIFで処理したら、次の取り込みへ。。 ------------------- といった感じです。繰り返し処理が、未熟で手段が分からず、 この記述をURL以外、コピー&ペースト100回くらい繰り返し、やっとEnd Sub が拝める状態です。 popesyuさんが教えてくださった通り、webクエリのファイル(*.iqy)作って ファイル名を変数にして、それを実行する処理が一番ベストのようですね。チャレンジしてみます。 ただし、100回繰り返しのところ→今度の仕事は2500~3000回の予定なのです。 とほほですが、テキスト(webクエリのファイル用に)を自動生成する方法。。など考えたほうがよいでしょうか? もちろん無謀なら、取り込みを分割する予定ですが。。 何度もすみません、どうしたらいいでしょう?

関連するQ&A

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

    エクセルwebクエリについて WEBクエリを使って、データを新しいワークシートに摘出することはできるのですが、それをマクロなどで連続して行うことはできるのでしょうか? 具体的には、Aラインに摘出元(ターゲット)のURLが数百から千数百個並んでおり、それら1つずつを新しいワークシートに摘出したいと考えています。 環境はWIN XP excel2000 を使用しています どうか、ご教授願います

  • Excel2007のWebクエリとマクロについてです。

    Excel2007のWebクエリとマクロについてです。 初投稿です。わかりづらい質問で申し訳ないのですが、気になる点があればすぐに補足しますのでよろしくお願いします。 気象庁のサイトから過去の気象データをWebクエリで参照しています。 下のサイトから1日分のデータをWebクエリを使って抜き出しました。(Excel2007) 1年分のデータ(365日分)を同じように抜き出したいのですがクエリで同じ操作をするのは面倒に感じています。 マクロのボタンなどで時間を短縮して参照する方法があれば教えてください。 www.data.jma.go.jp/obd/stats/etrn/view/hourly_s1.php?prec_no=73&prec_ch=%88%A4%95Q%8C%A7&block_no=47887&block_ch=%8F%BC%8ER&year=2009&month=01&day=1&view=p1 上記のyear=2009&month=01&day=1の部分を変化させて2009/01/1~2009/12/31までのデータをExcelに貼り付けたいです。

  • WEBクエリを処理していくVBAについて

    初めまして。 ExcelのVBAについての質問です。 WEBクエリを用いて、データを回収したいのですが まだVBAを勉強したてで、作りたいものがあるのに 作れず困っています。 sheet1 A列    B列 あああ http://aaaaa.co.jp/aaaa.html いいい http://aaaaa.co.jp/bbbb.html うううう http://aaaaa.co.jp/bbbb.html というものがあり このB列のURLを上から順番にWEBクエリによってデータを得て 「新しいシート」に貼り付け この新しいシートのシート名を、A列の対応する行の名前で順番に付けていきたいです。 aaaa.html → 「あああ」シート bbb.html → 「いいい」シート という感じです。 この処理を何回か続けていくVBAを教えていただきたいです。 宜しくお願い致します。

  • Excel VBAでWebクエリ更新

    VBA初心者です。 Excel VBAで、Webクエリを更新させ、取得したデータを同じBook内の別のSheetに コピーさせたうえで、データのソート等を行いたいと考えています。 上記の操作をマクロで記録し、走らせてみると、Webクエリのデータ更新(取得)が 完了する前に、それ以降の操作に進んでしまいます。 Webクエリのデータ更新(取得)が完了してから、次の操作に進ませるためには、 どのようにすれば良いでしょうか? よろしくお願いします。

  • Webクエリ

    ホームページのデーターをエクセルに取り込みたいのです。 .[データ]メニューから[外部データの取り込み]→[新しいWebクエリ] エクセルにホームページのアドレスがあり、取り込みたいアドレスがペーストできません。よってこれ以上先に進むことができません。 どなたかおしえていただければ幸いです。

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

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

  • マクロでWEBクエリで取り込むURLを変更したい

    お世話になります。 困っております。 当方、office2013エクセルでございます。 第3者(一緒に仕事しているスタッフ)でも使えるように、マクロで処理できるエクセルのファイル作りたいのです。 そこでやりたいことがあります! マクロを使って、あるURLをWEBクエリで取り込んで、その見せたい部分だけ別シートでピックアップしているファイルを作りました。 これから更にやりたいと思ったのは、その呼び出すクエリのURLを、見る人(このファイルを閲覧する人)が任意で変更できるようにしたいのです。 そのWEBクエリで呼び出すURLは、URLの末尾にある1桁~4桁の数字が違うだけのURLです。 見たい人が、決められたセルに、希望の番号を入れると、そのクエリのURLの末尾だけ書き換えたURLのWEBページを取り込めるようにできるようにしたいのです… 簡単そうなのですが、私の知識では 頭から煙が出てきている状態です…(´;ω;`) ぶん投げ的な質問で恐縮でございます。 質問、言葉遣いなど、不適切なことがありましたら、ご容赦いただきたく思います。 どうぞ、よろしくお願いします。

  • Excel2003のWebクエリダイアログのURL入力ができない

    Excel2003でWebクエリを使ってWebページ(特定の人のみ閲覧可)から外部データを取り込もうとしています。 Excel2000の時は「外部データの取り込み(D)」ー「新しいWebクエリ(W)」で開くダイアログボックスのアドレス(D)欄にURLを入力する際、ペーストが使えたのですが、Excel2003で同じようにアドレス欄にURLを入力しようとしても、ペーストがききません。手で一文字ずつ入力することは可能なのですが、取り込みたいURLは非常に長いもので、しかも日によってURLが変わるので現実的ではありません。 何かいい方法はないものでしょうか・・

  • Webクエリを使ってもページを表示できませんとなってしまいます

    ExcelのWebクエリの機能を使いたいのですが、外部データの取り込みで新しいWebクエリを開いても、「取り消されたアクション」か、「ページを表示できません」と表示されてしまいます。インターネットには接続した状態なのですが、どうすればWebクエリの機能を使えるのでしょうか?

  • Excel VBAにて特定のサイトからのWebクエリ取得に失敗します。

    こんにちは。 現在、http://www.oanda.com/convert/fxhistory というサイトから為替レートを取得してチャートを 自動作成するマクロを使っているのですが、 2,3日前からWebクエリの取得に失敗するようになりました。 (ソース引用)---------------------------------------     With ActiveSheet.QueryTables.Add(Connection:= _ "URL;" + url _ , Destination:=Range("A1")) RefreshStyle = xlOverwriteCells .AdjustColumnWidth = False .WebSelectionType = xlSpecifiedTables .WebFormatting = xlWebFormattingNone .WebTables = "5" .Refresh BackgroundQuery:=False End With (ソース引用 終)------------------------------------ .Refresh~の部分で --------------------------------------------- 実行時エラー 1004 ファイルにアクセスできませんでした。次のいずれかを行ってみてください。 ?指定したフォルダがあるか ?読み取り専用になっていないか ?次の文字が含まれていないか<>?[]:|* ?ファイル名、パス名が半角218文字より長くないか --------------------------------------------- (?以降のエラーメッセージは編集していますが、このような内容です) というエラーが出ます。 しかも 自宅の環境(WinXP Pro SP2,Office2003)ではエラーが出て 会社の環境(Win2000,Office2000)では問題なく動いたりします。 あと、マクロからではなく、 エクセル上から直接「データ→外部データの取り込み」で Webクエリを取得しようとしても同様のエラーが出ます。 サイトで何か対策されているのか、 こちら側での問題なのか・・・ 何かご存知の方がいらっしゃいましたら、 回答よろしくお願いいたします。