「python win32com 関数入力」
という検索キーワードでのアクセスがありました。
pywin32・win32com.clientを使って、Excelのセルにワークシート関数を入力するには、どのようなコードを書けばいいのか調べていた方による検索でしょう。
ExcelのセルにIF関数を入力するサンプル
Excelを起動しておいて、(グラフシートではなく)ワークシートがアクティブな状態で、以下のスクリプトを実行してみてください。
xl_app = win32com.client.GetObject(Class='Excel.Application')
xl_app.Range('B1').Formula = '=IF(A1>=80, "合格", "不合格")'
アクティブシートのB1セルにIF関数を使った数式
=IF(A1>=80, "合格", "不合格")
が、入力されます。
サンプルスクリプトで行っている処理について
最初の2行、
import win32com.client xl_app = win32com.client.GetObject(Class='Excel.Application')
は、起動済みのExcel.Applicationへの参照を取得する、pywin32でお決まりのコードです。
IF関数を入力する、
xl_app.Range('B1').Formula = '=IF(A1>=80, "合格", "不合格")'
の部分は、Excel VBAを理解できている方なら、コードを見てしまえば、難しくないと思います。
Pythonの代入文の右辺に、セルに入力したい数式を、シングルクォーテーション「'」で括ってそのまま書けばOKです。
Pythonでは文字列としてのクォーテーションの指定が楽
拙著VBAユーザーのためのPython超入門の、「3-5. 文字列を括るクォーテーション」でも解説しているとおり、Pythonでは文字列を括るのにシングルクォーテーション「'」とダブルクォーテーション「"」の両方が使えます。そのため代入文の右辺
xl_app.Range('B1').Formula = '=IF(A1>=80, "合格", "不合格")'
が、スッキリと書けます。
右辺の先頭と末尾に書かれている2つのシングルクォーテーション「'」が、
xl_app.Range('B1').Formula = '=IF(A1>=80, "合格", "不合格")'
Pythonで文字列を指定する際に利用するクォーテーションです。
右辺の途中に書かれている4つのダブルクォーテーション「"」は、
xl_app.Range('B1').Formula = '=IF(A1>=80, "合格", "不合格")'
Excelのセルに数式内で文字列を指定する際に利用するクォーテーションで、Pythonから見れば文字列としての「"」です。
最終更新日時:2021-10-01 12:56
Home » Python » pywin32・win32comの使い方 » pywin32・win32comでExcelのセルに関数を入力する