Diary?

2009-04-15
Wed

(23:32)

今月に入ってから C# + MS Office の開発をやってるんだが、なんか MS Office の API ってちょっとおかしくない?

俺がやろうとしていたのは Excel と Word でファイルセーブのイベントをフックして独自の処理を入れ込むことで、それ自体は Excel にも Word にもイベントハンドラがあったので実現はできたんだが、どうにも釈然としない。

Excel も Word も一つの Application クラスのインスタンスに対してそれぞれ複数の Workbook クラスと Document クラスのインスタンスが紐付くという作りになっていて、そこだけ見ると非常に似通ったオブジェクトの作り方なのだが、どういうわけだかファイルセーブのイベントハンドラの記述箇所が両者で違っていた。

Excel
Workbook クラスにイベントハンドラがある
Word
Application クラスにイベントハンドラがある

そして Word の方のイベントハンドラは、引数の型を見ると Document のインスタンスを渡す以外は Excel の物と同じで、何となく内部処理にはたいして違いがないように見える。いや、別に俺は MS の中の人じゃないんでまったくの当てずっぽうなんだけど。でもこういう不統一性は気になるっちゃ気になるんだよな。

Creative Commons
この怪文書はクリエイティブ・コモンズ・ライセンスの元でライセンスされています。引用した文章など Kuwata Chikara に著作権のないものについては、それらの著作権保持者に帰属します。