Ruby 1.8.7 リファレンスマニュアル > ライブラリ一覧 > win32oleライブラリ > WIN32OLE_TYPEクラス
クラスの継承リスト: WIN32OLE_TYPE < Object < Kernel
WIN32OLE_TYPEオブジェクトは、型情報ライブラリ(TypeLib)内に定義された 1つの型情報を保持します。
require 'win32ole' excel_app_type = WIN32OLE_TYPE.new('Microsoft Excel 14.0 Object Library', 'Application') puts excel_app_type.progid # => "Excel.Application.14"
new(libname, ole_class) -> WIN32OLE_TYPE
[permalink][rdoc]WIN32OLE_TYPEオブジェクトを生成します。
excel_app_type = WIN32OLE_TYPE.new('Microsoft Excel 14.0 Object Library', 'Application') puts excel_app_type.progid # => "Excel.Application.14"
TypeLibに定義されているすべての型を取得するには、 WIN32OLE_TYPE.ole_classesを利用します。
ole_classes(libname) -> [WIN32OLE_TYPE]
[permalink][rdoc]TypeLibで定義されているすべての型情報を取得します。
types = WIN32OLE_TYPE.ole_classes('Microsoft Excel 14.0 Object Library') classes = types.map{|k| k.name} # => ["Adjustments", "CalloutFormat", ...]
progids -> [String]
[permalink][rdoc]システムに登録されているすべてのコンポーネントクラスのPROGIDを取得します。
excel = nil WIN32OLE_TYPE.progids.each do |pg| if pg =~ /excel\.application/i # ExcelのPROGIDをバージョン無視で取り出す excel = WIN32OLE.new(pg) break end end unless excel $stderr.puts "Excel isn't installed" exit(1) end excel.visible = true # ... excel.Quit
PROGIDは、生成可能なOLEオートメーションサーバのCoClass(コンポーネント クラス)が持つレジストリ登録名です。WIN32OLE.newの引数に指定して WIN32OLEオブジェクトを生成できます。
typelibs -> [String]
[permalink][rdoc]システムに登録されているすべてのTypeLibのドキュメント文字列を取得します。
guid -> String | nil
[permalink][rdoc]この型のGUID(グローバル一意識別子)を取得します。
tobj = WIN32OLE_TYPE.new('Microsoft Excel 14.0 Object Library', 'Application') puts tobj.guid # => {00024500-0000-0000-C000-000000000046}
GUIDは、COMのクラス識別子(CLSID)、インターフェイス識別子(IID)など多数の 領域でWindows上のオブジェクトの識別に利用される128ビットの値です。
helpcontext -> Integer | nil
[permalink][rdoc]この型に関連するヘルプファイルのトピックID(ヘルプコンテキスト)を取得 します。
tobj = WIN32OLE_TYPE.new('Microsoft Excel 14.0 Object Library', 'Worksheet') puts tobj.helpcontext # => 131185
helpfile -> String | nil
[permalink][rdoc]オブジェクトに関連付けられたヘルプファイルのフルパス名。
ここで返されたヘルプファイルを表示するには、 WIN32OLE#ole_show_helpメソッドを呼び出します。
オブジェクトがヘルプファイルを持たない場合はnilを返します。
tobj = WIN32OLE_TYPE.new('Microsoft Excel 14.0 Object Library', 'Worksheet') puts tobj.helpfile # => C:\...\VBAXL9.CHM WIN32OLE.ole_show_help tobj.helpfile, tobj.helpcontext # 注)WIN32OLE.ole_show_help(tobj) の呼び出しが望ましい
当メソッドがフルパス名を返しても、ヘルプファイルがインストールされてい ない場合があることに注意してください。
また、返送値はOLEサーバの登録値をそのまま利用するため、Rubyのパス名形式 (ディレクトリ区切りは「/」)ではなく、Windowsのパス名形式(ディレクト リ区切りは「\」)です。
helpstring -> String | nil
[permalink][rdoc]型のドキュメント文字列を取得します。
tobj = WIN32OLE_TYPE.new('Microsoft Internet Controls', 'IWebBrowser') p tobj.helpstring # => "Web Browser interface"
ドキュメント文字列は、コンテキストヘルプなどに利用可能な型の簡単な説明文です。
major_version -> Integer
[permalink][rdoc]型のメジャーバージョン番号を取得します。
tobj = WIN32OLE_TYPE.new('Microsoft Word 14.0 Object Library', 'Documents') p tobj.major_version # => 8
minor_version -> Integer
[permalink][rdoc]型のマイナーバージョン番号を取得します。
tobj = WIN32OLE_TYPE.new('Microsoft Word 14.0 Object Library', 'Documents') p tobj.minor_version # => 5
name -> String
[permalink][rdoc]to_s -> String
selfの型名を取得します。
tobj = WIN32OLE_TYPE.new('Microsoft Excel 14.0 Object Library', 'Application') p tobj.name # => "Application"
ole_methods -> [WIN32OLE_METHOD]
[permalink][rdoc]型が持つメソッドのメタデータを取得します。
tobj = WIN32OLE_TYPE.new('Microsoft Excel 14.0 Object Library', 'Worksheet') methods = tobj.ole_methods.map {|m| m.name } # => ['QueryInterface', 'AddRef', 'Release',....]
[SEE_ALSO] WIN32OLE_METHOD
ole_type -> String | nil
[permalink][rdoc]selfの型の種類(TYPEKIND)を取得します。
tobj = WIN32OLE_TYPE.new('Microsoft Excel 14.0 Object Library', 'Application') p tobj.ole_type # => Class
ole_typeには以下があります。
列挙子(0)
ユーザ定義型(メソッドを持たない構造体)(1)
モジュール(静的関数やデータだけを保持)(2)
COMのインターフェイス(メソッド定義の集合)(3)
OLEオートメーションサーバ(4)
コンポーネントクラス(InterfaceやDispatchの実装)(5)
他の型の別名(6)
共用体(7)
型の種類を示す列挙体の終端マーカ(8)
MaxはTYPEKINDの終端マーカなので意味を持ちません。
[SEE_ALSO] WIN32OLE_TYPE#typekind
progid -> String | nil
[permalink][rdoc]selfのPROGIDを取得します。
PROGIDは、生成可能なOLEオートメーションサーバのCoClass(コンポーネント クラス)が持つレジストリ登録名です。WIN32OLE.newの引数に指定して WIN32OLEオブジェクトを生成できます。
tobj = WIN32OLE_TYPE.new('Microsoft Excel 14.0 Object Library', 'Application') p tobj.progid # => "Excel.Application.14"
この例は、ExcelのApplicationクラスが「Excel.Application.14」という PROGIDを持つことを示します。
[SEE_ALSO] WIN32OLE.new
src_type -> String | nil
[permalink][rdoc]selfが他の型の別名ならば、元の型名を取得します。
tobj = WIN32OLE_TYPE.new('Microsoft Office 14.0 Object Library', 'MsoRGBType') p tobj.src_type # => "I4"
この例は、OfficeのMsoRGBType型は符号付き32ビット整数(I4)の別名だとい うことを示します。
typekind -> Integer
[permalink][rdoc]selfの種類を示す値を取得します。
値の意味については、WIN32OLE_TYPE#ole_typeを参照してください。
tobj = WIN32OLE_TYPE.new('Microsoft Word 14.0 Object Library', 'Documents') p tobj.typekind # => 4
[SEE_ALSO] WIN32OLE_TYPE#ole_type
variables -> [WIN32OLE_VARIABLE]
[permalink][rdoc]型が持つ変数を取得します。
型がEnum(列挙型)やユーザ定義型の場合、メンバ変数の情報を WIN32OLE_VARIABLEオブジェクトの配列として返します。
tobj = WIN32OLE_TYPE.new('Microsoft Excel 14.0 Object Library', 'XlSheetType') vars = tobj.variables vars.each do |v| puts "#{v.name} = #{v.value}" end
上記を実行すると以下の出力が得られます。
xlChart = -4109 xlDialogSheet = -4116 xlExcel4IntlMacroSheet = 4 xlExcel4MacroSheet = 3 xlWorksheet = -4167
[SEE_ALSO] WIN32OLE_VARIABLE
visible? -> bool
[permalink][rdoc]この型が公開されているかどうかを照会します。
tobj = WIN32OLE_TYPE.new('Microsoft Excel 14.0 Object Library', 'Application') p tobj.visible? # => true