Hatena::Grouppython

nelnal@python

2008-04-24

[][] COMオブジェクトの定数を使用したスクリプトを py2exe で固める。 17:06  COMオブジェクトの定数を使用したスクリプトを py2exe で固める。 - nelnal@python を含むブックマーク はてなブックマーク -  COMオブジェクトの定数を使用したスクリプトを py2exe で固める。 - nelnal@python

pywin の win32com.client を使用する際に

定数は win32com.client.constants.*** などという形で記述すれば使用できる。


Excelだったら

import win32com.client

として、

range.End( win32com.client.constants.xlDown ).Row

などと使用すれば良い*1


これで、*.py の拡張子で実行するスクリプトの場合は問題ないのだが、

そのまま py2exe で固めて実行したところ、

AttributeError: xlToRight

と言われてしまった。

そこで色々と検索してみたところ全く同じケースについてこちら(py2exe Wiki)にあったので試してみた。


結果としてはリンク先の Solution 1 の解決方法(setup.pyの記述で対応)する方法は上手く行かなかった*2

そこで、暫定的にだが Solution 2 の解決方法で対応している。


1. コマンドラインで以下を実行

> python makepy.py -o (出力ファイルのパス)

2. ウィンドウが開いて対応するCOM オブジェクトライブラリについて聞かれるので、使用したいものを選択

3. ファイルが出力されるので、それを使用したい自分のスクリプトから読めるように適当なパスに配置

4. 使用するスクリプトファイルで作成したファイルを import し、使用する*3


これで解決できたわけだが、出来れば py2exe の setup.py で対応したいなぁ。

*1:ここではかなり省略しているが、range = Worksheet( 1 ).Range("A1") 等と考えてもらえれば良い

*2:色々と粘ってみたのだが

*3:constants = (出力ファイル).constantsなどとするとより使用しやすい

トラックバック - http://python.g.hatena.ne.jp/nelnal_programing/20080424