Home » Python » pywin32・win32comの使い方 » pywin32・win32comでExcelのセルに関数を入力する

pywin32・win32comでExcelのセルに関数を入力する

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

「python win32com 関数入力」
という検索キーワードでのアクセスがありました。

pywin32・win32com.clientを使って、Excelのセルにワークシート関数を入力するには、どのようなコードを書けばいいのか調べていた方による検索でしょう。

[スポンサードリンク]

ExcelのセルにIF関数を入力するサンプル

Excelを起動しておいて、(グラフシートではなく)ワークシートがアクティブな状態で、以下のスクリプトを実行してみてください。

import win32com.client
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のセルに関数を入力する

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

検索


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

.