ここまで準備したらExcel 2010を起動し、Webクエリを作ります。Webクエリは、Webページ内のテーブルを元データとしたクエリーテーブルで、Webページの最新データに更新することができます。

まず、リボンから[データ]タブをクリックし、[外部データの取り込み]-[Webクエリ]ボタンをクリックすると、[新しいWebクエリ]ウィンドウが開きます。

[アドレス]欄に先ほどコピーしたURLを貼り付け、[移動]ボタンをクリックしてください。先ほどのページが表示され、しばらくすると、ページ内にあるテーブルごとに、左肩に黄色い[→]タグが表示されます。銘柄名と日別推移のテーブルの[→]タグをクリックし、緑色の[V]に変わったことを確認してください。

図6.取り込むテーブルの選択

続いて、[取り込み]ボタンをクリックします。[データのインポート]ダイアログでは、一旦[プロパティ]ボタンをクリックして[外部データ範囲のプロパティ]ダイアログを開き、表1のように設定を変更してください。

表1.[外部データ範囲のプロパティ]ダイアログの設定

項目 変更方法 理由
1 名前 「priceTable」と変更 VBAで扱いやすい名前にするため
2 バックグラウンドで更新する チェックを外す 更新完了前に後続のマクロが実行されるのを防ぐため
3 列の幅を調整する チェックを外す 日付欄が銘柄名の幅に広がるのを防ぐため

図7.外部データ範囲のプロパティ

[OK]をクリックし、[データを返す先を選択してください]では、後で銘柄選択用コンボボックスを上に配置できるよう、既存のワークシートのA3セルあたりを選択して[OK]をクリックします。 株価データが取り込まれた範囲がクエリーテーブルとなります。列幅は適当に調整してください。

補足:クエリーテーブルの設定を確認しよう

ここでクエリーテーブルの仕組みを理解するために、[データ]タブ-[接続]-[接続]ボタンをクリックして[ブックの接続]ダイアログを開いてみます。「接続」という名前の接続が作成されていることがわかります。

図8.[ブックの接続]ダイアログ

続いて[プロパティ]ボタンをクリックすると開かれる[接続のプロパティ]の[定義]タブをクリックすると、接続の種類が「Webクエリ」であり、[接続文字列]に、入力済のURLが設定されていることがわかります。

図9.[接続のプロパティ]ダイアログ

従って、変更した銘柄のデータを読み込むためには、[接続文字列]のsymbol引数の銘柄コードを置き換え、[接続]という名前の接続を更新すればいいことがわかります。