Ruby 1.8.7 リファレンスマニュアル > ライブラリ一覧 > win32oleライブラリ > WIN32OLEクラス > setproperty
setproperty(name, val) -> ()
setproperty(name, args..., val) -> ()
オブジェクトのプロパティを設定します。
プロパティ名を指定してOLEオートメーションオブジェクトのプロパティ(Rubyの属性に相当)を設定します。
なお、OLEオートメーションの仕様により、プロパティ名の大文字、小文字は区別されません。
OLEオートメーションのプロパティはRubyの属性と異なり、パラメータを取ることができます。
たとえばExcelのWorksheetオブジェクトのCellsプロパティは桁位置と行番号の2つのパラメータを取ります。
これはVBでは次のように記述できます。
sheet.Cells(1, 1) = sheet.Cells(1, 2) ' セルB1の内容をセルA1へ
Rubyでは上記のコードの右辺をVBと同じく「sheet.Cells(1, 2)」のように記述できますが、左辺の記述はできません。
そのため、次の例のようにsetpropertyメソッドを利用して、パラメータ付きプロパティを設定します。
excel = WIN32OLE.new('Excel.Application') excel.visible = true sheet = excel.Workbooks.Add.Worksheets(1) sheet.setproperty('Cells', 1, 2, 32) sheet.setproperty('Cells', 1, 1, sheet.Cells(1, 2))