たぷつきません

おなかがでてきた。もうたぷついてるやん。

続 Excel2000のVBAから、C# VS2008で作ったCOMライブラリのクラスインスタンスを作成できない

 最後の手段で、こちらの情報通り*1にやりました。はい、あっさり解決です。なんだよーじゃあVS2005で開発するしかないかーという感じなんですが、これVS2005ならばという条件つきではなく、パッチアップデートが、VS2008でビルドしたものへも影響し、結果VS2008でビルドしたものも正しく動作するようになります。ビルド結果に問題があるのではなくランタイムライブラリに問題があるということでした。なのにVS2005がインストールされていないと当てられないって何じゃこりゃ。ちなみに、Excel2002でも全く同様の問題が起きました。
 このリンク先のMicrosoftサポートページには、このパッチ*2をビルドしたCOMライブラリと一緒に配布しなければならない…と書かれています。でセットアップディスクを作るにはVS2005Standardが必要になります。VS2005のセットアッププロジェクトでパッチを含めた有効なものを作っても、VS2008Standard以上で取り込むとパッチが不明となります。結果ビルドだけのためにVS2005Standardを買わなければなりません。非常にうざい。
 Office2003であればOffice2003の自動アップデートでKB907417が入り解決するようです。しかしOffice2000,2002は放置な感じ(そもそも.NETでCOMアドインをこれらにはサポートする気がないのかも)。ひどいなー。
 

*1:続きのこちらも参考になります。ありがとうございます。

*2:KB908002