Home » Python » pywin32・win32comの使い方 » pywin32・win32com.clientでSaveができない??

pywin32・win32com.clientでSaveができない??

動作検証バージョン:64bit Windows 10 Pro + 32bit Excel(バージョン2207 ビルド15427.20210 Microsoft Store)+ Python 3.8.3 + pywin32 228

「pywin32 saveできない」
という検索キーワードでアクセスがありました。

pywin32・win32com.clientを使って、何らかのアプリケーションで保存をしようとしたのに失敗し、その保存ができない理由・原因を調べていらしたのでしょう。

[スポンサードリンク]

保存ができない原因はいろいろと考えられますが、VBAに慣れた方がやってしまいがちなミスについて、ここではお伝えしておきます。

Pythonではメソッドのカッコが必要

Pythonのコードをしばらく書かないでいると私もウッカリやってしまうのですが、メソッドのカッコを書き忘れていないかを、まず確認しましょう。

Excelブックが開かれている状態で以下のコードを実行すると、アクティブなワークシートのA1セルに「hello, world!」と書き込まれてから、上書き保存が実行されます。

import win32com.client

xl_app = win32com.client.GetObject(Class='Excel.Application')
xl_app.Range('A1').Value = 'hello, world!'
xl_App.ActiveWorkbook.Save()

上記コードの、

xl_App.ActiveWorkbook.Save()

の部分、Saveメソッドのカッコを、VBAのコードを書く癖で

xl_App.ActiveWorkbook.Save

と書いて実行した場合には、

<bound method Save of <COMObject <unknown>>>

といったメッセージが表示され、上書き保存は行われません。

ここではExcelのWorkbook.Saveメソッドを例にしていますが、メソッドのカッコを書き忘れると動かない現象は、pywin32を使ってアプリケーションを操作する場合に、頻繁に発生します。

VBAに慣れている方は注意しましょう。

最終更新日時:2022-08-25 16:53

[スポンサードリンク]

Home » Python » pywin32・win32comの使い方 » pywin32・win32com.clientでSaveができない??

「pywin32・win32comの使い方」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.