現在、以下のサイトをWEBクエリを使い参照しているのですが、

http://money.www.infoseek.co.jp/MnForex/fxlast/?fx=F1001
http://futuresource.quote.com/quotes/quotes.jsp?s=CL
時々何らかの理由で参照しているセルの位置がずれてしまいます。

そのような時には、手動でサイトのページをエクセルに移動させて
いるのですが、他にもページがありまして、難しい作業ではないですが
時間的に厳しいです。

現在シートに「USD」、「EUR」、・・・・・・「NY原油」、「NY」・・・・・。
と各銘柄に分かれています。
これをそれぞれコピーしてセルに貼り付けたいのですが、何とかVBAで作業が出来ない
でしょうか。

また、理由がわかりませんが一部の銘柄(特に海外商品銘柄)で更新されない事が
時々あります。ページを更新してから貼り付け作業ができればありがたいです。

回答の条件
  • 1人5回まで
  • 登録:2008/10/05 08:02:34
  • 終了:2008/10/11 16:58:40

回答(2件)

id:pahoo No.1

pahoo回答回数5960ベストアンサー獲得回数6332008/10/05 09:45:14

ポイント10pt

具体的な解決策をお示しすることができないので、ポイントは不要で結構です。


「セルの位置がずれて」というのは、たとえば数字が本来表示されるセルではなく、隣りのセルに表示されてしまうといった形でしょうか。

いずれにしても「時々何らかの理由」というのが分からないと、VBAによる対応は難しいと思います。


これは推測ですが、時々、一覧表の中に記号が入ったり強調/色指定タグが挿入されたり、Webクエリが想定していないような状態になるのではないでしょうか。そういった条件がすべて明らかにならないと、VBAで組んでも同じ現象が起きてしまいます。


ご質問にある表を作りだしているAPIを探すのが一番です。

id:dadan_dan

返信ありがとうございます。

ずれる理由ですが、御指摘の様に記号の変動により起こる可能性が高いと思われます。

また、確かにVBAでも同じ現象は起こるのですが、1行・1列上下左右にずれているのがすぐに判るのですが、WEBクエリでのズレはかなり大きい時もあり元の画面と対比しながらすぐに修正する事は実際の作業上かなり厳しいです。

現状ではコピペの方が理解と対処がしやすく助かります。

出来れば宜しくお願い致します。

2008/10/05 10:37:41
id:an_shoku_panman No.2

an_shoku_panman回答回数14ベストアンサー獲得回数02008/10/06 13:30:46

ポイント100pt

こちらで如何でしょうか。

そのままでは使えないと思いますが、

少しの変更で何とかなりそうです。。。。

時間が無く修正が出来ませんが

御了承願います。(_ _)


Sub IE_Open_Copy()

Dim objIE As Object

Const OLECMDID_SELECTALL = 17

Const OLECMDID_COPY = 12

Const OLECMDEXECOPT_DODEFAULT = 0

Worksheets(1).Select

Range("A1").Select

'目的のWebページ

Const URL As String = "http://q.hatena.ne.jp/"

Set objIE = CreateObject("InternetExplorer.Application")

With objIE

.Visible = True

.Navigate URL

Do While .Busy

DoEvents

Loop

Do Until .ReadyState = 4

DoEvents

Loop

Application.Wait Now() + TimeValue("00:00:03")

.ExecWB OLECMDID_SELECTALL, OLECMDEXECOPT_DODEFAULT

.ExecWB OLECMDID_COPY, OLECMDEXECOPT_DODEFAULT

Application.Wait Now() + TimeValue("00:00:01")

.Quit

End With

AppActivate Application.Caption, True

Range("A1").Select

'Application.Wait Now() + TimeValue("00:00:05")

Application.SendKeys "^v"

Set objIE = Nothing

End Sub

  • id:airplant
    ヘッダが正しく取り込まれているなら、簡単にVBAで列をつめたり、行をつめたりはできそうです。
    具体的なずれ方を記載してもらえれば、回答がさらにつくと思うのですが・・・

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません