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

class WIN32OLE

クラスの継承リスト: WIN32OLE < Object < Kernel

要約

OLEオートメーションサーバをRubyで操作するためのクラスです。

Windowsの多くのアプリケーションやライブラリは、COMと呼ばれるAPI群を利用して他のプログラムから操作できます。WIN32OLEがサポートしているのは、COMのAPIのうち、特にインタープリタ用のインターフェイスであるOLEオートメーション(IDispatchインターフェイス)とそれに付随するリフレクション用のインターフェイスです。

これらのインターフェイスをサポートしている代表的なWindowsアプリケーションに、Office、IE、iTunes、Illustratorがあります。また、WMI、WshShellなどのライブラリを利用してWindowsの情報を操作することも可能です。これらのプログラムをOLEオートメーションサーバと呼びます。

WIN32OLEオブジェクトは、OLEオートメーションサーバが提供するメソッドやプロパティ(Rubyの属性に対応)をスクリプトから呼び出す手段を提供します。呼び出しには、Rubyのオブジェクトと同様にオブジェクトに続けて「.」とメソッド名、必要であれば引数のリストを記述します。最後の引数にHashを指定した場合は、名前付き引数としてキーにパラメータ名、値に引数を指定できます。

サンプルコード

require 'win32ole'

excel = WIN32OLE.new('Excel.Application')
workbook = excel.Workbooks.Open('workbook.xls')
workbook.PrintOut
workbook.Close('SaveChanges' => false)
excel.Quit

なお、OLEオートメーションの仕様ではメソッド名は大文字と小文字を区別しません。そのため、以下のようにOLEオートメーションサーバのメソッド名は小文字で記述しても構いません。

require 'win32ole'

excel = WIN32OLE.new('Excel.Application')
workbook = excel.workbooks.open('workbook.xls')
workbook.printout
workbook.close('SaveChanges' => false)
excel.quit

特異メソッド

定義 説明
codepage -> Fixnum

WIN32OLEがOLEオートメーションのインターフェイスに利用するコードページを取得します。

codepage=(cp) -> nil

WIN32OLEがOLEオートメーションのインターフェイスに利用するコードページを設定します。

connect(ole) -> WIN32OLE

現在実行中のOLEオートメーションサーバに接続します。

const_load(ole, mod = WIN32OLE) -> ()

OLEオートメーションサーバが保持する定数を読み込み、指定されたモジュールに組み込みます。

new(server, host=nil) -> WIN32OLE

OLEオートメーションサーバを生成します。

ole_free(aWIN32OLE) -> Integer

引数で指定したオブジェクトを解放します。

ole_reference_count(aWIN32OLE) -> Integer

引数で指定したオブジェクトの現在の参照カウント値を返します。

ole_show_help(obj, helpcontext = nil) -> ()

WIN32OLEオブジェクトのヘルプファイルを表示します。

インスタンスメソッド

定義 説明
self[name] -> object
self[name, param...] -> object

オブジェクトのプロパティを参照します。

self[name] = value
self[name, param...] = value

オブジェクトのプロパティを設定します。

_getproperty(dispid, args, types) -> object

DISPIDとパラメータの型を指定してオブジェクトのプロパティを参照します。

_invoke(dispid, args, types) -> object | nil

DISPIDとパラメータの型を指定してオブジェクトのメソッドを呼び出します。

_setproperty(dispid, args, types) -> ()

DISPIDとパラメータの型を指定してオブジェクトのプロパティを設定します。

each {|i|...} -> ()

オブジェクトの列挙インターフェイスを呼び出してアイテム単位にブロックを実行します。

invoke(name, *args) -> object | nil

メソッド名を指定してオブジェクトのメソッドを呼び出します。

method_missing(id, *args) -> object | nil

WIN32OLE#invokeメソッドを実行します。

ole_activex_initialize -> nil

ActiveXコントロール用の初期化を行います。

ole_free -> ()

selfが参照するCOMオブジェクトを解放します。

ole_func_methods -> [WIN32OLE_METHOD]

オブジェクトのファンクション情報をWIN32OLE_METHODの配列として返します。

ole_get_methods -> [WIN32OLE_METHOD]

オブジェクトの参照可能プロパティ情報をWIN32OLE_METHODの配列として返します。

ole_method(method) -> WIN32OLE_METHOD
ole_method_help(method) -> WIN32OLE_METHOD

メソッド名を指定して対応するWIN32OLE_METHODオブジェクトを取得します。

ole_methods -> [WIN32OLE_METHOD]

オブジェクトのメソッド情報をWIN32OLE_METHODの配列として返します。

ole_obj_help -> WIN32OLE_TYPE | nil
ole_type -> WIN32OLE_TYPE | nil

WIN32OLE_TYPEオブジェクトを返します。

ole_put_methods -> [WIN32OLE_METHOD]

オブジェクトの設定可能プロパティ情報をWIN32OLE_METHODの配列として返します。

setproperty(name, val) -> ()
setproperty(name, args..., val) -> ()

オブジェクトのプロパティを設定します。

定数

定義 説明
ARGV -> [object]

直前のメソッド呼び出しの引数を格納した配列です。

CP_ACP -> Fixnum

Windows既定のANSIコードページ(0)を示します。

CP_MACCP -> Fixnum

Macintoshコードページ(2)を示します。

CP_OEMCP -> Fixnum

OEMコードページ(1)を示します。

CP_SYMBOL -> Fixnum

文字コードの変換にシンボルを利用することを示します(42)。

CP_THREAD_ACP -> Fixnum

現在実行中のスレッドの既定のコードページ(3)を示します。

CP_UTF7 -> Fixnum

文字コードの変換にUTF-7を利用することを示します(65000)。

CP_UTF8 -> Fixnum

文字コードの変換にUTF-8を利用することを示します(65001)。

LOCALE_SYSTEM_DEFAULT -> Fixnum

システム既定のロケールを示すLCID(0x0800)です。WIN32OLEがオートメーションを利用する場合の既定値です。

LOCALE_USER_DEFAULT -> Fixnum

ユーザ既定のロケールを示すLCID(0x0400)です。

VERSION -> String

Major.Minor.Patch形式のWIN32OLEのバージョン番号を示す文字列です。

継承したメソッド

== === =~ __id__ __send__ _dump class clone dclone display enum_for eql? equal? extend freeze frozen? hash initialize initialize_copy inspect instance_eval instance_exec instance_of? instance_variable_defined? instance_variable_get instance_variable_set instance_variables is_a? marshal_dump marshal_load method methods nil? pretty_inspect pretty_print pretty_print_cycle pretty_print_inspect pretty_print_instance_variables private_methods protected_methods public_methods remove_instance_variable respond_to? singleton_method_added singleton_method_removed singleton_method_undefined singleton_methods taint tainted? tap to_a to_ary to_hash to_int to_io to_proc to_regexp to_s to_str to_yaml to_yaml_properties to_yaml_style untaint