「xlwingsセル 式の取得」
といった検索キーワードでアクセスがあることに気が付きました。
PythonからExcelを操作するライブラリxlwingsを使った場合に、セルに入力されている数式を取得するには、どのようなコードを書けばいいのか探していらしたのでしょう。
xlwingsで数式を扱う場合にもRange.formula
xlwingsでも、Rangeオブジェクトに用意されているformulaプロパティで、セルに入力されている数式を取得したり、設定したりできます。
xlwingsは、Excel VBAとまったく同じというわけではありませんが、Excel VBAの悪くない部分は、できるだけそのまま取り入れようとしているライブラリに、私には感じられます。
xlwings.Range.formulaを確認するサンプル
先頭シートのC1:C4セルに、下図のようなさまざまな数式を入力したsample.xlsxファイルを、
Cドライブtempフォルダーに保存しておいてから、以下のコードを実行してみてください。
bk = xlwings.Book(r'C:\temp\sample.xlsx')
sht = bk.sheets[0]
print(sht.cells(2, 3).formula)
print(sht.range(3, 3).formula)
print(sht['C4'].formula)
以下のように、セルに入力されている数式がそのまま出力されます。
=A1+B1 =SUM(A2:B2) =A3>B3 =IF(A4>B4, "Aが大きい", "")
Excel VBA的なコードでRangeを取得した場合でも、
print(sht.range('C1').formula)
print(sht.cells(2, 3).formula)
Excel VBA的ではないコードでRangeを取得した場合でも同じです。
print(sht.range(3, 3).formula)
print(sht['C4'].formula)
- Newer:Excel VBAでPowerPointにスライドを追加する
- Older:Word VBAで現在のセルを
Home » Python » xlwingsの使い方 » xlwingsでセルに入力されている数式を取得する-Range.formulaプロパティ