WIN32OLE_TYPEメモ

WIN32OLE_TYPE.typelibs

タイプライブラリ一覧を文字列の配列で取得。

puts WIN32OLE_TYPE.typelibs.grep(/PowerPoint/)
# =>
Microsoft PowerPoint 9.0 Object Library
Microsoft PowerPoint 12.0 Object Library

WIN32OLE_TYPE.ole_classes(typelib)

指定したtypelibのクラス一覧を配列で取得。

tl = WIN32OLE_TYPE.typelibs.grep(/PowerPoint/)[1]
puts WIN32OLE_TYPE.ole_classes(tl).map { |c| c.to_s }.grep(/Shape/)
# =>
Shapes
Shape
ShapeRange
GroupShapes
ShapeNodes
ShapeNode
PpShapeFormat
CanvasShapes

WIN32OLE_TYPE#variables

OLEクラスのインスタンスに定義された変数の配列を取得する。実際には、定数一覧が得られるようだ。

WIN32OLE_TYPE.ole_classes(tl).map { |c| c.to_s }.grep(/Slide/).each do |c|
  va = WIN32OLE_TYPE.new(tl, c.to_s).variables
  pp [c, va] unless va.empty?
end