• 締切済み

webクエリのurlの変更方法

エクセルのマクロからクエリを使ってホームページにあるデータを自動的に取得する方法を考えています。 ただ、アドレスが規則的ではないためその部分が自動化できませんでした。 そこで、セルにコピー&ペーストで貼り付けてそのアドレスをVBAに読み込ませて作動させたいと考えています。 しかし、VBAの中にセルの文字を組み込む方法がわかりません。 教えていただけますでしょうか?

みんなの回答

  • xls88
  • ベストアンサー率56% (669/1189)
回答No.3

≪変数を使用≫ Sub データ取得()   Dim myurl As String   myurl = Range("A1").Value   With ActiveSheet.QueryTables.Add _     (Connection:=myurl, Destination:=Range("A2"))     .WebTables = "17"     .Refresh BackgroundQuery:=False   End With End Sub

  • xls88
  • ベストアンサー率56% (669/1189)
回答No.2

引数 Connection にURLを渡せば良いのですから セルA1にURLが入力されているなら Sub データ取得() '   With ActiveSheet.QueryTables.Add _     (Connection:=Range("A1").Value, Destination:=Range("A2"))     .WebTables = "17"     .Refresh BackgroundQuery:=False   End With End Sub とすれば良いです。

spt033
質問者

お礼

どうもありがとうございました!

  • xls88
  • ベストアンサー率56% (669/1189)
回答No.1

URLのところに直接 Range("A1").Value とする。 あるいは、変数を用意して Dim myurl As String myurl = Range("A1").Value のような感じにすれば良いと思います。 テスト中のコードを提示された方がアドバイスし易いです。

spt033
質問者

補足

すばやいご回答ありがとうございます。 コードはこんな感じです。 Sub データ取得() '   With ActiveSheet.QueryTables.Add(Connection:= _ "URL;ここにURLを入れる", Destination:= _ Range("A2")) .WebTables = "17" .Refresh BackgroundQuery:=False End With End Sub URLのところに直接 Range("A1").Valueを入れる場合と変数を入れる場合、コードはどのような形になるでしょうか? 初心者なのでどこに入れたらうまくいくのかがわかりませんでした・・・ よろしくお願いいたします。

関連するQ&A

  • Webクエリ

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

  • セルから取得したURLをwebクエリで取り込むには?

    Excelのwebクエリに関する質問です。 sheet1のセルA1に書かれたURLをwebクエリでテキストデータのみを取り込みたいです。 結果はsheet2のセルA1に出します。 次にsheet1セルA2のURLをsheet3のセルA1に取り込みます。 以上の様なことを数十ページ行いたいと思います。 sheetは始めはsheet3までしかありませんので、 随時自動で追加されると助かります。 VBAの知識がなく、こちらで相談させていただくことになりました。

  • Excel VBAでWebクエリ更新

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

  • マクロで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が変わるので現実的ではありません。 何かいい方法はないものでしょうか・・

  • エクセルのマクロでアクセスのクエリ結果をコピーしたい

    アクセスのクエリ結果をエクセルで編集しているのですが、エクセル側から マクロを登録したボタンをクリックすると、クエリ結果がエクセルにコピー されるようにしたいのです。 アクセスは中身を変更してはいけないということなので、エクセルから自動で コピーできる方法があれば、と思い質問しました。 アクセスは、最初に検索用のフォームに条件を入力して、結果を違うフォームに 表示させています。 現在は結果が出たところでデータベースウィンドウを表示させ、該当するクエリ を開いてそれをエクセルにコピー&ペーストしています。クエリ結果を表示させた フォームをコピー&ペーストすると、セルに色がついてしまうし、データの並びが 違うのでひと手間多くしています。 また、検索に使うクエリは条件によって変わるようで、2種類あります。 (アクセスはよく判らないので、あやふやな説明しかできないのですが、すみません) 今後はこの作業を、パソコンに詳しくない他の人がするというので、 できるだけ作業を簡単にしたいのです。 使っているアプリケーションは、エクセル97とアクセス97です。 ご存知のかた、よろしくお願いします。

  • エクセルのセルの文字をyahooで検索

    エクセルのセルに記載されている文字をyahooで検索したいと思っています。 VBA初心者です。色々サイトを見たのですがエラーばっかりで前に進まなかったので 質問させていただきます。 <流れとしては…> (1)エクセルVBAでマクロを起動させるとyahooを自動的に開く (2)セルに記載されている文字をコピーしてyahooの検索できる枠にペースト (3)yahooの「検索」ボタンを自動的に押して検索結果の画面まで進む を目標にしてマクロを作成したいと思っています。 <出来上がりは…> (1)エクセルVBAでマクロを起動させるとyahooを自動的に開く ⇒こちらはネットで調べて起動することができました。 (2)セルに記載されている文字をコピーしてyahooの検索できる枠にペースト ⇒Sheet1のA1に記載されている文字をコピーする所まで進みました。   yahooの検索の枠にペーストしたいです。 (3)yahooの「検索」ボタンを自動的に押して検索結果の画面まで進む ⇒yahooの検索ボタンを押してそのまま検索結果の画面を開きたいです。 ===[マクロ文]==================================================   'yahooで自動で検索' CreateObject("wscript.shell").Run "http://www.yahoo.co.jp/" Sheets("Sheet1").Select ActiveSheet.Range("A1").Select Selection.Copy ====ここまで================================================== この先が調べてもどうマクロを組んでよいのか不明でしたので 質問させて下さい。 よろしくお願いします。

  • Excelでセル内の文字列のみをコピーする方法

    Excelでセル内の文字列のみをクリップボードにコピーする方法を教えてください。 ※クリップボードにコピーをする方法であり、他のセルに値のみをペーストする方法ではありません。 満たしたい点は2つです。 ・表示している文字列のみを取得 ・複数のセルを同時にコピー 一つのセルに以下の文字列が入っていた場合(#以外) #123 #"abc" コピーするとクリップボードを文字列として取得すると以下の文字列が得られます #"123 #""abc""" これを以下の文字列が得られるようにしたいのです。 #123 #"abc" 1つのセルだけでいい場合は、セルを編集状態にしてコピーしたり アクティブセルの数式バーをコピーすればいいのですが、 これは当然、複数のセルを同時に選択する場合には使えません。 VBAを使う方法でもそうでなくてもかまいません。 (VBAの場合はコードもお願いしたいです) よろしくお願いします。

  • エクセルWEBクエリで毎回変わるURLに対応したい

    中央競馬の結果成績をWEBクエリで自動取得したいと思ったのですが、URLの一部が毎回変わります。 日付、開催場、第何回か、何一目か、これらの要素で変化します。 それを認識して設定した通りに取得したいのです。 現在、日付ごとに競馬のデータを1つのBookとして保存しています。 各レース別にシートを分けています。 最大3場開催なので、36シートあります。 例えば2008年8月24日のBOOKに、2008年8月24日第3回新潟4日目の3レースの結果を、 シート3の指定のセル(A30)にテキスト形式で貼り付けます。 つまり各レースの結果をそれぞれのレース別に分けたシートの指定のセルに貼り付けるということを、自動取得で出来ないでしょうか? 結果はYAHOO競馬でも良いのですが、 こちらのサイトの方がシンプルなのでこれを使ってみました。 http://www.keibabook.co.jp/homepage/freeraceinfo/tojitu/sokuhoinfo.aspx?subsystem=0 2008年8月24日第3回新潟4日目ならこちら http://www.keibabook.co.jp/homepage/freeraceinfo/tojitu/sokuhoinfo2.aspx?subsystem=0&negahi=20080824&kai=03&basyocd=07&kaisai=04 URLのkai=03&basyocd=07&kaisai=04の部分が第3回(03)新潟(07)4日目(04)になっています。 当日の開催中は徐々に行数が増えていきますので、まだ表示されていないレースの行を指定できませんでした。 また、結果で同着が起きた場合、そのレースだけ行数が増えます。 そんな時はこのような表示になります。 http://www.keibabook.co.jp/homepage/freeraceinfo/tojitu/sokuhoinfo2.aspx?subsystem=0&negahi=20080817&kai=03&basyocd=07&kaisai=02 理想としてはその日の名前を(2008年8月24日第3回新潟4日目)をどこかのセルに入れたら、 それを認識してその日の結果のページにデータを取得しに行く事が出来れば良いのです。(入力は各開催場で1回のみ) 自分なりに考えてやってみた事は、日付別のBOOKとは別に結果取得用のBOOKを作り、 それのシート1~3にそれぞれの開催場の結果をリアルタイムに取得できるようにしました。 本日の場合なら、シート1新潟、シート2小倉、シート3札幌という風にです WEBクエリで取得に指定した範囲は各開催場の結果全体です。 これで結果が更新される度に表示されました。(5分間隔設定) それを日付別のBOOKからマクロで結果取得用のBOOKに取得しに行く事にしましたが、 結果が同着になると行がずれてくるためにコピーしてきたものが目的の内容とは違う行になってしまいました。 また毎回その日のURLでWEBクエリを設定する必要があります。 何か良い方法を教えてください。 マクロで出来るならそのマクロコードを教えてください。 マクロコードにはどんな動作をさせてるコードなのかも書いて頂けるとありがたいです。 宜しくお願いします。

  • 新しいWebのクエリ

    フリーメールの受信箱やこのスレの質問箱をエクセルにとりこみたいのです。新しいWebのクエリを使えばいいのですが、対象のアドレス、たとえばOKウェブの質問箱をペーストするのですが、うまいこといきません。アドレスは手で入力するのでしょうか。あとは移動のところをクリックすればいいのですね。

専門家に質問してみよう