「xlwings 最終行」
といった検索で時折アクセスがあります。
表計算ソフトExcelを操作するPythonの外部ライブラリxlwingsを使って、ワークシートの最終行を取得するにはどのようなコードを書けばいいのかを調べていた方による検索です。
「最終行」と表現されているのが何なのかいくつかの解釈が可能ですが、この記事ではSheetオブジェクトのused_rangeプロパティ、Rangeオブジェクトのlast_cellプロパティを使って、最終行番号を取得するサンプルをご紹介します。
Sheet.uset_range.last_cell.rowを使って最終行番号を取得するサンプルスクリプト
以下のスクリプトを実行してください。
bk = xw.Book()
ws = bk.sheets[0]
ws['B2:G5'].value = 123
print(ws.used_range.last_cell.row)新規ブックがExcelで表示され、B2:G5セルに数値「123」が入力され、最終行番号である「5」が出力されます。
サンプルスクリプトで行っている処理
もちろんポイントは、
print(ws.used_range.last_cell.row)
の行、print()関数の引数に指定された「ws.used_range.last_cell.row」です。
Sheet.used_rangeプロパティ
最終行番号を出力している、
print(ws.used_range.last_cell.row)
の「.used_range」は、Sheetオブジェクトのused_rangeプロパティです。
Excel VBAのWorksheet.UsedRangeに相当するプロパティで、ワークシート上で使われているセル範囲を表すRangeオブジェクトを取得できます。
先ほどのスクリプトを実行した後に、
print(ws.used_range.address)
を実行すると、
$B$2:$G$5
と出力されます。
先のスクリプトでは、
ws['B2:G5'].value = 123
と、B2:G5セルのみに値を入力しているので、Sheet.used_rangeは、B2:G5セルですから、「ws.used_range.address」で「$B$2:$G$5」が取得できるわけです。
Range.last_cellプロパティ
最終行番号を出力している行
print(ws.used_range.last_cell.row)
の「.last_cell」は、xlwingsのRangeオブジェクトに用意されているlast_cellプロパティです。
セル範囲を表すコレクションとしてのRangeの、最後のセルを表すRangeオブジェクトを取得するための、便利なプロパティです。
Excel VBAで、何らかのセル範囲の最後のセルを表すRangeを取得する場合、セルの個数をRange.Itemプロパティの引数に指定する必要があります。
xlwingsでは、Range.last_cellプロパティを使うだけで最後のセルを表すRangeを取得でき、とても便利だと感じます。
Range.rowプロパティ
先ほどのスクリプトで最終行番号を出力している行
print(ws.used_range.last_cell.row)
の「.row」は、Rangeオブジェクトのrowプロパティです。
Excel VBAのRange.Rowに相当するプロパティで、行番号を返してくれます。
- 『Excel VBAユーザーのためのPythonプログラミング入門』発売に
- 紹介しているxlwingsのBooks/Bookが持つプロパティとメソッドの一覧
- 紹介しているxlwingsのSheets/Sheetが持つプロパティとメソッドの一覧
- 紹介しているxlwingsのRangeが持つプロパティとメソッドの一覧
最終更新日時:2023-10-13 11:37
Home » Python » xlwingsの使い方 » xlwingsで最終行番号を取得する-Sheet.used_range.last_cell.row