はじめに

今回は、以前取り上げたRSS2.0形式のフィード取得機能を、RSS1.0にも対応させます。RSS1.0、2.0に対応することで、世の中の大部分のフィードに対応できるようになりますので、サンプルを活用する幅も広がるでしょう。動作確認は、Windows 7、Excel 2010、VBA 7.0およびWindows XP、Excel 2007、VBA 6.5で行っています。

Excel VBAでWebサービス - Excelでヤフオクの商品情報を検索しよう
Excel VBAでWebサービス - Excelでフィードを読もう(RSS2.0編)
Excel VBAでWebサービス - ExcelからWikipediaを引いてみよう
Excel VBAでWebサービス - Amazonで様々な商品情報を検索しよう
Excel VBAでWebサービス - Amazonで書籍情報を検索してみよう
Excel VBAでWebサービス - ExcelでTwitterと連携する 完成編
Excel VBAでWebサービス - ExcelでTwitterと連携する2
Excel VBAでWebサービス - ExcelでTwitterと連携する
Excel VBAでWebサービス - YouTube APIで動画を検索しよう
Excel VBAでWebサービス - Excelで書籍情報を検索・取得してみよう
Excel VBAでWebサービス - MSNマネーから株価の推移を取得しよう
Excel VBAでWebサービス - 天気予報を取得してみよう
Excel VBAでWebサービス - ExcelでJScriptの機能を利用しよう

図1.完成サンプル

フィード利用上の注意事項

フィード利用にあたっては、各サイトの利用規約に従うように注意してください。

RSS1.0形式のフィードについて

第11回の復習になりますが、RSS1.0とRSS2.0におけるフォーマットの違いを確認しておきましょう。

図2.RSSフォーマット仕様の変遷

今回は、RDF(Resource Description Framework。Web上の複雑なデータを記述する仕組み)をベースとしているRSS1.0を取り上げます。とは言え、Excelに取り込む部分は、テキスト、リンクのURL程度ですので、RSS2.0とほぼ同じ要領で操作できます。

図3.RSS1.0形式のデータ例

主なタグ要素は以下の通りです。

表1.RSS1.0の主なタグ要素

要素 親要素 説明
rdf:RDF (なし) ルート要素
channel rdf:RDF 記事の総括情報。唯1つ存在する
item rdf:RDF 記事1件分の情報。件数だけ存在する
title item、channel タイトル
link item、channel Webページへのリンク
description item、channel 本文
dc:date item、channel 発行日時

完全な仕様は、「RDF Site Summary 1.0(英語)」で確認できます。

Excelによる開発

以下の手順で行います。手順2、3は第11回(RSS2.0)と全く同じですので説明を省略します。また、他の手順についても、RSS1.0としての差分のみ説明しますので、必要に応じて第11回の記事も参照してください。

1.各種の準備を行う
2.グローバル変数を準備するVBAを記述する
3.更新ボタン押下で動作するVBAを記述する
4.HTTP通信、RSS解析を行うVBAを記述する
5.正規表現を用いてHTTPタグを除去するVBAを記述する

各種の準備を行う

URLとジャンルの入力と、更新結果表示のために、以下の名前を定義しておきます。

表2.更新結果を表示するための名前定義

名前 範囲 目的
genre A2:A11セル 配信サイトのジャンル入力用
url B2:B11セル 配信サイトのURL入力用
status C2:C11セル アクセス結果の表示用
title_header A13セル 表題ヘッダ
description_header B13セル 本文ヘッダ
pubDate_header C13セル 発行日時ヘッダ
genre_header D13セル ジャンルヘッダ

また、コマンドボタン「cbUpdate」を配置します(表示名は「更新する」)。

図4のような準備ができればOKです。

図4.更新画面の準備