Ruby 2.2.0 リファレンスマニュアル > ライブラリ一覧 > win32oleライブラリ > WIN32OLE_VARIANTクラス > new

singleton method WIN32OLE_VARIANT.new

new(val, vartype = nil) -> WIN32OLE_VARIANT[permalink][rdoc]

指定したオブジェクトを値とするWIN32OLE_VARIANTオブジェクトを生成します。

[PARAM] val:
ラップするRubyオブジェクトを指定します。
[PARAM] vartype:
省略時はWIN32OLEが自動型変換を行います。指定する場合は WIN32OLE::VARIANTの定数を指定してください。
[RETURN]
val引数を値として持つWIN32OLE_VARIANTオブジェクトを返します。
[EXCEPTION] TypeError:
val引数の型がArray、String、Integer、Float、Time、 WIN32OLE、WIN32OLE_VARIANT、TrueClass、FalseClass、 NilClass のいずれでもありません。
shell = WIN32OLE.new('Shell.Application')
folder = shell.NameSpace('C:\\Users\\Public\\Documents')
item = folder.ParseName('test.txt')
v = WIN32OLE_VARIANT.new('Delete')
item.invokeVerb(v)     # => ゴミ箱への移動ダイアログを表示

バイト配列を生成するには、以下のようにvartype引数にVT_UI1 | VT_ARRAYを設定します。バイト配列の値のRuby表現はエンコーディングをASCII-8BITに設定した文字列となります。

include WIN32OLE::VARIANT
bytes = WIN32OLE_VARIANT.new([1,2,3,4,5], VT_UI1 | VT_ARRAY)
bytes.value          #=> "\x01\x02\x03\x04\x05"
bytes.value.encoding #=> #<Encoding:ASCII-8BIT>

[SEE_ALSO] WIN32OLE::VARIANT