singleton method WIN32OLE_TYPE.progids

progids -> [String][permalink][rdoc][edit]

システムに登録されているすべてのコンポーネントクラスのPROGIDを取得します。

[RETURN]
システムに登録されているすべてのコンポーネントクラスの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オブジェクトを生成できます。