2007/11/07

WEBのデータファイルをEXCEL上に取り込む

WEB上にあるデータをEXCELシートにコピーするということを良くします.

その場合,以下のようにしてやると簡単にEXCELにデータを取り出せて楽です.


【事例】
Sub test1()

ThisWorkbook.Activate
Sheets("sheet1").Select
Cells.Select
Selection.ClearContents
Range("A1").Select
With ActiveSheet.QueryTables.Add(Connection:= _
"URL;http://table.yahoo.co.jp/t?c=2007&a=11&b=01&f=2007&d=11&e=11&g=d&s=4689.t&y=0&z=4689.t" _
, Destination:=Range("A1"))
.Name = "Yahooデータ"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = False
.RefreshStyle = xlOverwriteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.WebSelectionType = xlEntirePage
.WebFormatting = xlWebFormattingNone
.WebPreFormattedTextToColumns = True
.WebConsecutiveDelimitersAsOne = True
.WebSingleBlockTextImport = False
.WebDisableDateRecognition = False
.Refresh BackgroundQuery:=False
End With

End Sub

【解説】
上記のマクロを実行すると,sheet1シートにYahooの2007/11/01~2007/11/11までの株価をデイリーで表示します。

取り出したいデータはWEB上ではデータベースのようになっておりいろいろなパラメータをWEBサーバ側に要求する場合が多いのでその部分を関数にしてやって&でつなぐといろいろとさらに汎用性が広がります.例えばURLの部分を下記のようにします.

一つ注意点としては日付・時間などをWEBサーバに要求する場合はCStr()関数を使用して関数を文字列データへ変換しないとうまくいかないことが多いです.

こんな感じで,Yahooのホームページから株価をExcelにダウンロードすれば株価のトレンドチャートとかを自動でかけるようになると思います(本気でやってないのでどのようになるかは…やられた方,ご報告のほどよろしくお願いいたします.)。

0 件のコメント: