Home » Python » xlwingsの使い方 » xlwingsで最終行番号を取得する-Sheet.used_range.last_cell.row

xlwingsで最終行番号を取得する-Sheet.used_range.last_cell.row

動作検証バージョン:Windows 10 Pro(64-bit)+ 64bit Excel(バージョン2302 ビルド16130.20218 キック実行)+ Python 3.11.1(64-bit) + xlwings 0.29.1

「xlwings 最終行」
といった検索で時折アクセスがあります。

表計算ソフトExcelを操作するPythonの外部ライブラリxlwingsを使って、ワークシートの最終行を取得するにはどのようなコードを書けばいいのかを調べていた方による検索です。

「最終行」と表現されているのが何なのかいくつかの解釈が可能ですが、この記事ではSheetオブジェクトのused_rangeプロパティ、Rangeオブジェクトのlast_cellプロパティを使って、最終行番号を取得するサンプルをご紹介します。

Sheet.uset_range.last_cell.rowを使って最終行番号を取得するサンプルスクリプト

以下のスクリプトを実行してください。

import xlwings as xw

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に相当するプロパティで、行番号を返してくれます。

最終更新日時:2023-10-13 11:37

[スポンサードリンク]

Home » Python » xlwingsの使い方 » xlwingsで最終行番号を取得する-Sheet.used_range.last_cell.row

「xlwingsの使い方」の記事一覧

検索


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

.