FrontPage2003は、言語としてVBA(Microsoft Office FrontPage 2003 Visual Basic for
Applications )を内蔵しており、これによりいくつかの機能を拡張させることができます。
上記のマイクロソフト社のRSSTOOLSはVBAのプログラム(インタープリタソース)ですので、ここに直接修正を加えることで、いろいろな機能に対応させることがきます。
RSSTOOLのソース自体をここには転載はできませんので、同様の作業を検討されていらっしゃる場合、以下の情報を参考に修正されると良いと思います。
まず、RSSデータの文字コードについてですが、Tool自体はテキスト文字列としてXMLファイルを構成していきます。
ShiftJISへの対応は、ヘッダー生成文字列のエンコード指定を行うことで、対応できます。
RSSデータであるXMLファイルのヘッダーを出力する際に、encoding="Shift_JIS"を出力するようにすればOKです。
<?xml version="1.0" encoding="Shift_JIS"?>
最初、XMLでのRSS配信において、文字コードはUnicodeに限られるのかと思っていたのですが、文字コードをきちんと指定すればShift-JISでもOKであることがわかり安心しました。(XMLについては、まったくの初心者なので...)
シフトJISで生成したXMLデータを、いくつかの公開RSSチェッカーなどで確認したのですが、特に問題はないようです。
実際使われているRSSデータを公開チェッカーによりチェックすると、日付のフォーマットが引っかかることが多いようです。
今回はプログラム的にXMLを生成するのですから、要求仕様に合わせることは簡単でした。
Tue, 14 Nov 2006 15:46:02 +0900
RSS2.0の仕様では、日付形式は上記の形式のようなので、VBAでは以下のように指定することで作成できます。
Format(intPubDate, "ddd, dd mmm yyyy hh:nn:ss") & " +0900"
※intPubDateには、ファイルの最終変更日時プロパティ(vti_timelastmodified)から得られた日時データ(int形式)が入っています。
※最後の+0900は日本標準時間(JST)が世界標準時間(GMT)から9時間進んでいることを示します。
RSSのチェックがおこなわれる際に、前回と同じRSSデータと認識されるためには、<title>、<link>、<description>についてはチェックされているようなので、ここはダイアログからの自由入力にするのではなく、初期値を入れるか、プログラム的に固定したほうがよさそうです。
簡単な方法としては、テキストボックスの初期値として設定してしまいます。
WebFilesオブジェクトを使用すると、FrontPageで作成中のWeb中のファイル情報をプログラム的に利用できるようです。
WebFilesをFor eachによりチェックすることで、Web中のすべてのファイルをチェックできます。
ファイル名の拡張子のHTML,HTMなど、RSS対象としたい拡張子を持ったすべてのファイルのプロパティの最終更新日付(vti_timelastmodified)と、現在の日付とを比較することで、最近更新が行われたファイルを見つけることができます。
また、ループ内でフォルダの位置やファイル名をチェックすることで、RSSに配信したくないフォルダやファイルを排除することができます。
xx以下のフォルダは配信対象に含めないや_で始めるファイルは含めないということも簡単にできます。
VBAで記述されたプログラムを、FromtPageのツールバーにボタンとして登録することで、自分の都合の良いタイミングで、1クリックでRSSを生成できるようになります。
また、FrontPageの共有枠にRSSを配置することで、すべてのページから最新のRSSを使用することができます。
余談となりますが、TOOLに含まれるrss.xslはスタイルシートなので、特に内容を変更する必要はありませんが、あわせて配置する必要があります。
最初これに気がつかず、ファイルをアップしなかったとところ、ブラウザで見るとエラーがでてRSS.XMLを見ることができませんでした。
エラーチェックは問題なく通るところまでいったのですが、いろいろプログラム的に変更しても表示されずかなりの期間悩みました。
近年CMSによるWeb作成が主流となってきたせいか、FrontPageによるWeb作成は情報が少ないようです。
ある程度までの規模のWebを、Windows上でHTMLベースでページを記述するためのツールとしては、Frontpageはよくできたソフトウェアであると思います。あとは、MDBからスタティックなページ生成が直接行えるとうれしいのですが、VBAを使用するとうまく行くかもしれません。
今回のFrontPageからRSSデータの配信については、以前から何回か作りたかったのですが、なかなか参考になるものがなく、苦労しました。どのくらいFrontPage2003のユーザーがいらっしゃるのかはわかりませんが、同様のことをお考えの方に多少なりとも参考になればと思い、このページを作成しました。