ホームページの管理を行うにあたり、ページの一貫性は重要である。そのため、AccessやExcelで基礎データを作っておき、整合性を持ってページの内容を書き換えるようにしたい、という構想を持っている。

そこで、VBAでHTMLを生成するサンプルを作ってみることにした。題材は自治体の人口一覧。各自治体のHPから人口情報を取得し、かつURI情報も取得し、Excelで一覧にする。そこから必要な情報のみをHTML化するようにしてみる。

Excelは内部コードはUNIコードであるが、通常のOPEN/CLOSEを用いてのテキストファイルを出力すると「ASCII+ShiftJIS」である。しかし、charsetは選択できるようにしたい。

その場合、通常のOPEN/CLOSEに替えて、ADODBのStreamを利用すれば簡単である。例としてUTF-8で出力をしてみた。

なぜADO?と思う向きもあるだろうが、ADOはデータベースのみならずテキストストリームも扱えるのだ。

参考:マイクロソフトの資料
 Streamの説明
 Charasetの説明

さて、Charasetにどんな文字を設定すればいいのか。上記のCharasetの説明にもあるが、Windows レジストリの HKEY_CLASSES_ROOT\MIME\Database\Charset のサブキーを参照すればよいそうである。

部分部分を常駐のクラスモジュールで組み立てていくと、意外なほど簡単に組み上がる。早速このページを生成しアップしてみようか、という気になっている。