2011年9月7日水曜日

pywin32 + Excel

pywin32でCOMでEXCELを操作するメモ。当然Windows上で実行が必要。

  • EXCELファイルを直接操作するタイプのライブラリで xlsx に対応したものが見当たら無かった(2011/09/07現在)
  • 既にEXCEL上で作り溜めたVBAを活用したかった
ということでpywin32。

※先頭が□なのはToDo。
  • pywin32をインストールする。インストーラはPythonのバージョン毎にあるので注意。
  • import win32com.client
  • xlApp = win32com.clinet.Dispatch("Excel.Application")
  • □特定のEXCELブックを開く方法が分からなかった。とりあえず手動で開く。
  • EXCEL内部の自作のPublic Subを動かすには xlApp.Evaluate("ModuleName.SubName()") 。モジュール名から指定しないと動かない。文を直接流すのは無理のようだ。
  • 外部からモジュールをインポート。 xlApp.VBE.ActiveVBProject.VBComponents.Import("pathotofile")
  • 現在あるモジュールを削除(確認無しで削除の模様) xlApp.VBE.ActiveVBProject.VBComponents.Remove(xlApp.VBE.ActiveVBProject.VBComponents("Module1"))
  • Evaluateを使わずに普通にコマンドを指定するのは出来る。

0 件のコメント: