xlwingsを使う場合、「.used_range.last_cell.row」といったコードで、最終行番号を取得できることを解説しました。
この記事の中で少しだけ使っている、xlwingsのRange.addressプロパティについて補足しておきます。
xlwingsのRange.addressに引数は指定できない
Excel VBAの場合、RangeオブジェクトのAddressプロパティを使ってセル番地を表す文字列を取得でき、引数にFalseを2つ指定することで相対参照スタイルの文字列を取得することも可能です。
xlwingsのRange.addressプロパティでも同じだろうと、引数を指定して実行してみたところ、
TypeError: 'str' object is not callable
といったエラーが発生してしまった方がいるかもしれません。
xlwingsの場合、Rangeオブジェクトのaddressプロパティに引数を指定できないためです。
おそらくxlwingsには、引数を指定できるプロパティはないはずです。
xlwingsのRange.get_address()なら引数を指定できる
xlwingsの場合、セル番地を取得するためのメソッドも、セルを表すRangeオブジェクトに用意されています。
Range.get_address()メソッドです。
このRange.get_address()メソッドならば、引数を指定することで、相対参照スタイルでセル番地を取得するなどが可能です。
何らかのExcelブックを開き、セルやセル範囲が選択された状態で、以下のスクリプトを実行してください。
bk = xw.books.active
rng = bk.selection
print(rng.get_address(False, False))
選択されているセル・セル範囲の番地が、絶対参照スタイルと相対参照スタイルで出力されます。
最終更新日時:2023-03-23 08:24
- Newer:Excel VBAでグラフタイトルを選択する
- Older:OpenPyXLで複数ブックのシート名一覧を再帰的に出力する
Home » Python » xlwingsの使い方 » xlwingsのセル番地取得はRange.get_address()がaddressより高機能