« [英語] 折り返し点 | トップページ | [本] 白熱した推理合戦で盛り上がるミステリ »

2008年7月 5日 (土)

[Ruby] Win32OLEの1.8と1.9の違い(その1)


1.8と1.9とでは、Win32OLEに違いがあります。
これまで、Win32OLEは互換性をできる限り保ちつつ改訂してきたのですが、
1.9では互換性を保っていないところがあります。



そろそろ、違いをちゃんと整理し始めた方がいいんじゃないかと思っています。
まだ、1.9での仕様を決め兼ねている部分もあるのですが...。
ちょっとずつ、気の向いたときに書いていこうかと思ってます。



変更点



1. WIN32OLE#[], WIN32OLE#[]= を使ったプロパティの設定、参照が1.9ではできない。



つまり、1.9では、



ex = WIN32OLE.new('Excel.Application')
ex['Visible'] = true
puts ex['Visible']


とは書けなくて、



ex = WIN32OLE.new('Excel.Application')
ex.Visible = true
puts ex.Visible


としか書けません。



2. 次のような書き方ができるようになった。



dict = WIN32OLE.new('Scripting.Dictionary')
dict.add("foo", "FOO")
puts dict["foo"]
dict["foo"] = "BAR"
puts dict["foo"]


これは、1.の変更の代わりに新たにできるようになったことです。



技術的に細かい話は、ここでは省略しますが、今まで、



xxxx.item("foo")


と書かなくてはいけなかったものが、運が良ければ、



xxxx["foo"]


とVBScriptライクな書き方ができるようになったということです。



従来通り、



xxxx.item("foo")


と書いても大丈夫です。


|

« [英語] 折り返し点 | トップページ | [本] 白熱した推理合戦で盛り上がるミステリ »

コメント

この記事へのコメントは終了しました。

トラックバック


この記事へのトラックバック一覧です: [Ruby] Win32OLEの1.8と1.9の違い(その1):

« [英語] 折り返し点 | トップページ | [本] 白熱した推理合戦で盛り上がるミステリ »