ウィリアムのいたずらの、まちあるき、たべあるき

ウィリアムのいたずらが、街歩き、食べ物、音楽等の個人的見解を主に書くブログです(たま~にコンピューター関係も)

ExcelでYAHOOの株価など、Webページを読み込む方法:その2 マクロ編

2006-05-30 22:17:22 | Officeソフト&VBA

前回のExcelでYAHOOの株価など、Webページを読み込む方法:その1 ショートカット編で書いたとおり、今回は、WebページをExcelで読み込んで、そのデータを利用しよう!のマクロ編です。

 といっても、すっごく、かんたんなのだ。

 Workbooks.Open Filename:=開こうとするURL名

 で、Excel上で、そのサイトをExcelのシートとして扱える
 (昨日の、ショートカット編とおんなじようになる)

 たとえば、昨日と同じ例、YAHOOファイナンスで、エイベックスの株価の場合
 (エイベックスの銘柄コードは7860なので)
 URLはhttp://quote.yahoo.co.jp/q?s=7860&d=v1&k=c3&h=on&z=m

 したがって、ホームページは
Workbooks.Open Filename:= _
"http://quote.yahoo.co.jp/q?s=7860&d=v1&k=c3&h=on&z=m"
 とかくと、開くことができる。



ということで、これを使った例を一つ。
■仕様
以下のように、Excelのシートが出来ていて

(ただし、はじめは、株価は入っていない。証券(銘柄)コードははいっている)
「開始!」ボタンを押すと、A列の4行目から、A列に証券コードが入っている間、
YAHOOの株価欄を検索し、株価を同じ行のB列に入れていく。
(結果が上記の画像)

ただし、
・「開始!」ボタンは、ボタン1で登録されていて、
  ボタンを押すと「ボタン1_Click()」を実行するものとする

・YAHOO株価欄のURLは、
 "http://quote.yahoo.co.jp/q?s=" & cd & "&d=v1&k=c3&h=on&z=m"
 cdのところに、証券コードが入る。
 (cdの両隣の&は、VBAにおける文字列連結の意味)

・上記のURLで、セルE37が、とりあえず、今のところ、株価である
 (つまり、はじめ、ショートカット編の方法で読んでみて、たしかめたところ
  E37が、そうだった)




■ プログラム
 ボタンをクリックすると実行される「ボタン1_Click()」の内容は、こんなかんじ
Sub ボタン1_Click()
    Dim url As String
    Dim cd As String
    Dim sosa_sh As Worksheet
            
    Set sosa_sh = ActiveSheet       '   現在の操作画面のシートを取っておく
    gyo = 4                         '   4行目から開始
    
    Do While sosa_sh.Cells(gyo, 1) <> ""
            '   コード取得してURL設定
        cd = sosa_sh.Cells(gyo, 1)
        url = "http://quote.yahoo.co.jp/q?s=" & cd & "&d=v1&k=c3&h=on&z=m"
            
            '   読み込み開始=>この時点で、アクティブシートは、これになる
        Workbooks.Open Filename:=url
        
            '   値を設定
        sosa_sh.Cells(gyo, 2) = ActiveSheet.Range("E37")    '   E37が株価
            
            '   読み込んだページをクローズ
        ActiveWorkbook.Close
        
            '   次の行へ
        gyo = gyo + 1
    Loop
    
End Sub

(上記< > ¥ は、本当は半角です)




ってなことで、Webページを読み込む場合は、AJAXより、Excelのほうが、ずっと簡単だったりする。
 なお、YAHOOは将来、URLやセルを変えるかもしれない。
 (つーか、この実験をやったのは昨日なので、今日は、もう違う可能性すらある)
 そのため読み込みURLやセルは、別途シート上に定義しておき、それを
 参照する形のほうが、安全かも。。



この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« ExcelでYAHOOの株価など、Web... | トップ | ExcelでXMLを読んだ例を、... »
最新の画像もっと見る

Officeソフト&VBA」カテゴリの最新記事