はじめに

今回は、株価の情報を取り上げます。株主にとって、株価の変動はいつも気になりますよね。そこで、様々な金融情報をまとめて提供している「MSNマネー」のサイトから、株式の銘柄ごとに株価の推移を取得する方法を紹介します。動作確認は、Windows 7、Excel 2010、VBA 7.0およびWindows XP、Excel 2007、VBA 6.5で行っています。

Excel VBAでWebサービス - 天気予報を取得してみよう

図1.完成サンプル(上半分:取得した株価の詳細な値)

図2.完成サンプル(下半分:取得した株価をチャートで表現)

手順の概要

以下の手順で作成します。 1.株価のデータを取り込むクエリーテーブルの作成
2.対象銘柄を切り替えるための準備
3.銘柄の切り替え、データの取り込み、株価チャート作成を実現するVBAの実装

クエリーテーブルとは、外部のデータベースなどとリンクし、問い合わせ結果が表示されるワークシート上の領域のことです。今回のクエリーテーブルは、Webページとリンクしたもので、Webクエリとも呼ばれます。

株価のデータを取り込むクエリーテーブルの作成

まず、MSNマネー(http://money.jp.msn.com/)のトップページへアクセスしましょう。

上の方に並んでいる[株式]タブをクリックし、[株価検索]リンクをクリックします。 図3のように[株価・投資信託検索]のラジオボタンで[株価]がチェックされていることを確認したら、任意の銘柄(例.ANA)を入力し、すぐ右にある[検索]ボタンをクリックします。

図3.銘柄検索ページ

入力値が含まれる(中間一致)銘柄名の一覧が図4のように検索結果として表示されますので、その中から目的の銘柄(例.全日本空輸)のリンクをクリックすると、その銘柄の情報ページが表示されます。

図4.検索結果一覧ページ

この際、株式のコードが銘柄名とともに表示されていることを確認しておいてください(例.JP:9202)。続いて、中ほどにある[時系列データ]リンクをクリックすると、図5のように1か月間の日別推移が新しい順に表示されます。この際、ブラウザのアドレスバーにあるURLをコピーしておいてください。

この例では、http://jp.moneycentral.msn.com/investor/charts/historicdata.aspx?symbol=JP%3a9202となっています。URLの最後に「?引数=値」と指定することで、Webサイトは引数の値による動的な処理が可能になります。当該ページではsymbol引数で指定された銘柄コードで対象銘柄を識別している訳です。なお、銘柄コードは「JP:9202」でなく「JP%3a9202」となっていますが、この理由については後ほど説明します。

図5.時系列データ表示ページ