要約
OLEオートメーションサーバが持つメソッドの情報を提供します。
WIN32OLE_METHODは、WIN32OLE#ole_methodsなどの呼び出しによって返されるオブジェクトで、OLEオートメーションサーバのメソッドの情報(メタデータ)を保持します。
サンプルコード
  excel = WIN32OLE.new('Excel.Application')
  excel.ole_methods.each do |method|
    if method.visible?
      puts <<SIGNATURE
#{method.return_type} #{method.name}(#{
    method.params.map {|p| "#{p.ole_type} #{p.name}"}.join(', ')
}) : #{method.helpstring}
SIGNATURE
    end
  end
@see WIN32OLE#ole_methods, WIN32OLE#ole_func_methods, WIN32OLE#ole_get_methods, WIN32OLE#ole_put_methods, WIN32OLE#ole_method, WIN32OLE#ole_method_help, WIN32OLE_PARAM
目次
- 特異メソッド
- インスタンスメソッド
特異メソッド
- new(ole_type, method) -> WIN32OLE_METHOD[permalink][rdoc][edit]
- 
WIN32OLE_TYPEとメソッド名を指定してWIN32OLE_METHODのインスタンスを生成します。 OLEオートメーションサーバの型情報とメソッド名からWIN32OLE_METHODのインスタンスを生成します。 アプリケーションプログラムでは、WIN32OLE_METHODオブジェクトをnewメソッドで生成するよりも、WIN32OLE#ole_methodなどのメソッドを参照するほうが簡単です。 - [PARAM] ole_type:
- WIN32OLE_TYPEのインスタンス。
- [PARAM] method:
- メソッド名を文字列で指定します。
- [RETURN]
- methodパラメータに対応するWIN32OLE_METHODのインスタンス。
- [EXCEPTION] WIN32OLERuntimeError:
- methodパラメータで指定したメソッドが見つかりません。
 tobj = WIN32OLE_TYPE.new('Microsoft Excel 14.0 Object Library', 'Workbook') method = WIN32OLE_METHOD.new(tobj, 'SaveAs')
インスタンスメソッド
- dispid -> Integer[permalink][rdoc][edit]
- 
メソッドのディスパッチID(DISPID)を取得します。 ディスパッチIDはメソッドの一意識別子です。WIN32OLEでは、 WIN32OLE#_invokeなどのメソッドで、呼び出すサーバのメソッドを指定するのに利用します。 - [RETURN]
- メソッドのDISPIDを返します。
 tobj = WIN32OLE_TYPE.new('Microsoft Excel 14.0 Object Library', 'Workbooks') method = WIN32OLE_METHOD.new(tobj, 'Add') puts method.dispid # => 181[SEE_ALSO] WIN32OLE#_invoke, WIN32OLE#_getproperty, WIN32OLE#_setproperty 
- event? -> bool[permalink][rdoc][edit]
- 
メソッドがイベントかどうかを取得します。 イベントとはこのサーバが実装しているメソッドではなく、クライアント側がサーバ側の通知を受けるために実装するメソッドです。 - [RETURN]
- メソッドがイベントであれば真。
 tobj = WIN32OLE_TYPE.new('Microsoft Excel 14.0 Object Library', 'Workbook') method = WIN32OLE_METHOD.new(tobj, 'SheetActivate') puts method.event? # => true[SEE_ALSO] WIN32OLE_EVENT 
- event_interface -> String | nil[permalink][rdoc][edit]
- 
メソッドがイベントの場合、イベントのインターフェイス名を取得します。 - [RETURN]
- メソッドがイベントであれば、イベントのインターフェイス名を返します。イベントでなければnilを返します。
 tobj = WIN32OLE_TYPE.new('Microsoft Excel 14.0 Object Library', 'Workbook') method = WIN32OLE_METHOD.new(tobj, 'SheetActivate') puts method.event_interface # => WorkbookEvents
- helpcontext -> Integer | nil[permalink][rdoc][edit]
- 
メソッドのヘルプコンテキストを取得します。 ヘルプコンテキストは、関連するヘルプファイル上のトピック位置を示す整数値です。 - [RETURN]
- ヘルプコンテキストを返します。未定義の場合はnilを返します。
 tobj = WIN32OLE_TYPE.new('Microsoft Excel 14.0 Object Library', 'Workbooks') method = WIN32OLE_METHOD.new(tobj, 'Add') puts method.helpcontext # => 65717WIN32OLE_METHODオブジェクトを引数として、WIN32OLE.ole_show_helpでヘルプファイルを表示する場合には、WIN32OLEが内部で当メソッドを呼び出します。 [SEE_ALSO] WIN32OLE.ole_show_help 
- helpfile -> String | nil[permalink][rdoc][edit]
- 
ヘルプファイルのパス名を取得します。 メソッドにヘルプファイルが関連付けられている場合、該当ヘルプファイルのパス名を返します。 - [RETURN]
- ヘルプファイルのパス名を文字列で返します。ヘルプファイルが未定義ならばnilを返します。
 tobj = WIN32OLE_TYPE.new('Microsoft Excel 14.0 Object Library', 'Workbooks') method = WIN32OLE_METHOD.new(tobj, 'Add') puts method.helpfile # => C:\...\VBAXL9.CHMメソッドにヘルプファイルが関連付けられている場合、WIN32OLE.ole_show_helpにWIN32OLE_METHODオブジェクトを与えてヘルプファイルを表示できます。 [SEE_ALSO] WIN32OLE.ole_show_help 
- helpstring -> String | nil[permalink][rdoc][edit]
- 
メソッドのヘルプ文字列を取得します。 helpstringは、IDEがメソッドのバルーンヘルプを表示するような場合に利用可能な、1行程度でメソッドを説明する文字列です。 - [RETURN]
- ヘルプ文字列を返します。未定義ならばnilを返します。
 tobj = WIN32OLE_TYPE.new('Microsoft Internet Controls', 'IWebBrowser') method = WIN32OLE_METHOD.new(tobj, 'Navigate') puts method.helpstring # => Navigates to a URL or file.
- invkind -> Integer[permalink][rdoc][edit]
- 
メソッドの種類を示すINVOKEKIND列挙値を取得します。 ここで言うメソッドの種類というのは、OLEオートメーションクライアントの記述言語がどのような形式でサーバ呼び出しを記述すべきかを指定した属性値です。 - [RETURN]
- メソッドのINVOKEKINDを返します。
 tobj = WIN32OLE_TYPE.new('Microsoft Excel 14.0 Object Library', 'Workbooks') method = WIN32OLE_METHOD.new(tobj, 'Add') puts method.invkind # => 1INVOKEKIND列挙値は以下の通りです。メソッドの種類は以下の値の論理和で示されます。 - INVOKE_FUNC(1)
- 
関数呼び出し形式で記述するメソッドです。 
- INVOKE_PROPERTYGET(2)
- 
プロパティ参照形式で記述するメソッドです。 
- INVOKE_PROPERTYPUT(4)
- 
プロパティに値を設定する形式で記述するメソッドです。 
- INVOKE_PROPERTYPUTREF(8)
- 
プロパティに参照を設定する形式で記述するメソッドです。 
 なおINVOKE_PROPERTYPUTREFとINVOKE_PROPERTYPUTは、プロパティ設定形式が2 種類ある言語用の区分です。Rubyでの記述時はどちらも「prop=(arg)」の形式で記述します。 
- invoke_kind -> String[permalink][rdoc][edit]
- 
メソッドの種類を文字列で取得します。 ここで言うメソッドの種類というのは、OLEオートメーションクライアントの記述言語がどのような形式でサーバ呼び出しを記述すべきかを指定した属性値です。 - [RETURN]
- メソッドの種類を示す文字列を返します。
 tobj = WIN32OLE_TYPE.new('Microsoft Excel 14.0 Object Library', 'Workbooks') method = WIN32OLE_METHOD.new(tobj, 'Add') puts method.invoke_kind # => "FUNC"返送値は以下のいずれかとなります。値の意味は WIN32OLE_METHOD#invkindの説明を参照してください。 - PORPERTY
- 
INVOKE_PROPETYGETとINVOKE_PROPETYPUTの両方が設定されています。 
- PROPERTYGET
- 
INVOKE_PROPETYGETが設定されています。 
- PROPERTYPUT
- 
INVOKE_PROPERTYPUTが設定されています。 
- PROPERTYPUTREF
- 
INVOKE_PROPERTYPUTREFが設定されています。 
- FUNC
- 
INVOKE_FUNCが設定されています。 
- UNKNOWN
- 
上記のいずれにも当てはまりません。 
 [SEE_ALSO] WIN32OLE_METHOD#invkind 
- name -> String[permalink][rdoc][edit]
- to_s -> String
- 
メソッド名を取得します。 - [RETURN]
- メソッド名を文字列で返します。
 tobj = WIN32OLE_TYPE.new('Microsoft Excel 14.0 Object Library', 'Workbook') method = WIN32OLE_METHOD.new(tobj, 'SaveAs') puts method.name # => SaveAs
- offset_vtbl -> Integer[permalink][rdoc][edit]
- 
このメソッドのVTBLのオフセットを取得します。 VTBLはC++やCでメソッドを呼び出すために利用する関数ポインタのテーブルです。 - [RETURN]
- メソッドのVTBL上のオフセットを返します。
 tobj = WIN32OLE_TYPE.new('Microsoft Excel 14.0 Object Library', 'Workbooks') method = WIN32OLE_METHOD.new(tobj, 'Add') puts method.offset_vtbl # => 40
- params -> [WIN32OLE_PARAM][permalink][rdoc][edit]
- 
メソッドのパラメータ情報を取得します。 このメソッドのパラメータをWIN32OLE_PARAMの配列として返します。配列の最初の要素が最左端のパラメータに対応します。 - [RETURN]
- WIN32OLE_PARAMの配列。無引数のメソッドであれば要素数0の配列を返します。
 tobj = WIN32OLE_TYPE.new('Microsoft Excel 14.0 Object Library', 'Workbook') method = WIN32OLE_METHOD.new(tobj, 'SaveAs') p method.params # => [Filename, FileFormat, Password, WriteResPassword, ReadOnlyRecommended, CreateBackup, AccessMode, ConflictResolution, AddToMru, TextCodepage, TextVisualLayout]
- return_type -> String[permalink][rdoc][edit]
- 
メソッドの返り値の型名を取得します。 - [RETURN]
- 返り値の型名を示す文字列を返します。
- [EXCEPTION] WIN32OLERuntimeError:
- メソッドの型情報を取得できなかった場合に通知します。
 tobj = WIN32OLE_TYPE.new('Microsoft Excel 14.0 Object Library', 'Application') method = WIN32OLE_METHOD.new(tobj, 'Visible') puts method.return_type # => BOOLOLEオートメーションの型名は、対応するWIN32OLE::VARIANTの定数の先頭の「VT_」を削除した名称を持ちます。 たとえば、32ビット符号付き整数であれば「I4」となります。 [SEE_ALSO] WIN32OLE::VARIANT 
- return_type_detail -> [String][permalink][rdoc][edit]
- 
返り値の型と属性を取得します。 - [RETURN]
- 返り値の型と属性を文字列配列で返します。
 tobj = WIN32OLE_TYPE.new('Microsoft Excel 14.0 Object Library', 'Application') method = WIN32OLE_METHOD.new(tobj, 'Workbooks') p method.return_type_detail # => ["PTR", "USERDEFINED", "Workbooks"]属性が付加されていない場合は、WIN32OLE_METHOD#return_typeを要素とした配列が返ります。 返り値の取り得る属性値はCOMのIDL(インターフェイス定義言語)によって規定されています。 [SEE_ALSO] http://msdn.microsoft.com/en-us/library/aa367042(VS.85).aspx 
- return_vtype -> Integer[permalink][rdoc][edit]
- 
メソッドの返り値の型を示す数値を取得します。 - [RETURN]
- 返り値の型を示す数値(VARENUM)を返します。
- [EXCEPTION] WIN32OLERuntimeError:
- メソッドの型情報を取得できなかった場合に通知します。
 tobj = WIN32OLE_TYPE.new('Microsoft Excel 14.0 Object Library', 'Application') method = WIN32OLE_METHOD.new(tobj, 'Visible') puts method.return_vtype # => 11VARENUMの定義は、Platform SDKのwtypes.hにあります。 
- size_opt_params -> Integer | nil[permalink][rdoc][edit]
- 
オプションパラメータ数を取得します。 - [RETURN]
- オプションパラメータ数を整数で返します。メソッドの詳細情報を取得できない場合はnilを返します。
 tobj = WIN32OLE_TYPE.new('Microsoft Excel 14.0 Object Library', 'Workbook') method = WIN32OLE_METHOD.new(tobj, 'SaveAs') puts method.size_opt_params # => 5
- size_params -> Integer | nil[permalink][rdoc][edit]
- 
パラメータ数を取得します。 - [RETURN]
- パラメータ数を整数で返します。メソッドの詳細情報を取得できない場合はnilを返します。
 tobj = WIN32OLE_TYPE.new('Microsoft Excel 14.0 Object Library', 'Workbook') method = WIN32OLE_METHOD.new(tobj, 'SaveAs') puts method.size_params # => 12
- visible? -> bool[permalink][rdoc][edit]
- 
このメソッドがクライアントに対して公開されているか(可視性を持つか)どうかを返します。 - [RETURN]
- メソッドが公開されていれば真。
 tobj = WIN32OLE_TYPE.new('Microsoft Excel 14.0 Object Library', 'Workbooks') method = WIN32OLE_METHOD.new(tobj, 'Add') puts method.visible? # => true