ホームページの管理を行うにあたり、ページの一貫性は重要である。そのため、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 のサブキーを参照すればよいそうである。
部分部分を常駐のクラスモジュールで組み立てていくと、意外なほど簡単に組み上がる。早速このページを生成しアップしてみようか、という気になっている。
そこで、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 のサブキーを参照すればよいそうである。
部分部分を常駐のクラスモジュールで組み立てていくと、意外なほど簡単に組み上がる。早速このページを生成しアップしてみようか、という気になっている。