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")
と書いても大丈夫です。
最近のコメント