[python] pywin32でexcel操作

出来ることは知ってたけど、いまいちやり方と調べかたが分からず放置してたのですが
必要になりそうなので調べて、わかりにくかったことをまとめてみました。

そもそもPyWin32十はなんぞ?ということですが
Windowsの各種アプリケーションを、COMと呼ばれるオブジェクト(部品)を利用して色々外側からいじれるぜー というモジュール。
とりあえず、Windowsをいじくり回せる端子のようなものと理解してます。

基本的な使い方。

COMを使用した場合のコマンドはどうしたら良いんだろう?というのがずっと疑問だったのですが
どうやら、このコマンドはVBAと同じで、VBAの内容をPythonっぽく書いてあげればOKでした。

が、それだと xlFillDefault のようなEnum?っぽいものの設定はどうするの?
というのがわからずしばらく悩んでしまいましたが

Dispatch の部分を、上のようにして win32.constraint を使用してやれば
OKのようです。
win32.Dispatch(~) を使用だけだと、Errorになってしまうので注意が必要です。

もう1つ迷ったのが、CellのOffset。
たしかVBAの場合は、Offsetしたい数を入れるはず…なのに、 Offset(0,1) とかだとErrorになってしまいうーん…結局は

0ではなく1から(今のCellを (1,1)としてのOffsetにすればOKでした。

Cellの色を変更する場合、VBAだと RGB() という関数を使用しますが、
COMの場合はどうするんだろう?
というのは

こんな感じで関数を作ってあげれば、RGB()と同じことができるようです。

最後にソートのやり方。

Sortの引数で、VBAと同じように指定をしてあげればOKのようです。
Key1とかだけだと上手く動かず
Orientation=1
を入れないと上手く動かないようですが、何故なのかはよく分かりません(汗

pythonにはpython-excel ライブラリというものが用意されていますが、
慣れてしまえばVBAと同じ感覚で使える分COMのほうが簡単かなーと思います。

[python] pywin32でexcel操作」への1件のフィードバック

  1. ピンバック: Notes on Excel Manipulation in Python – FSE サポート

コメントを残す

メールアドレスが公開されることはありません。


*