「xlwings セル選択」
といった検索で、このサイト『インストラクターのネタ帳』へ時折アクセスがあります。
Excelを操作するPythonの外部ライブラリxlwingsを使って、ワークシート上のセルを選択するにはどのようなコードを書けばいいのか、調べていた方による検索しょう。
xlwingsでセルを選択するサンプル
以下のコードを実行すると、新規ブックが作成され、アクティブシートのB2セルが選択されます。
>>> bk = xw.Book()
>>> sht = bk.sheets.active
>>> sht.range('B2').select()
Rangeオブジェクトに用意されているselect()メソッドを使えば、セルを選択できます。
どのセルを選択するのかは、「.select()」の前に書かれているコードで取得できるRangeオブジェクト次第です。
さまざまなRange取得方法を使ったセルの選択
xlwingsでは、実にさまざまな書き方でRangeオブジェクトを取得できるので、いくつかをご紹介しておきます。
行や列の選択
行全体や列全体を選択するなら、以下のようなコードです。
>>> sht.range('1:1').select()
で1行目を選択でき、
>>> sht.range('2:3').select()
ならば2:3行目を選択できます。
また、
>>> sht.range('A:C').select()
でA:C列を、選択できます。
複数セルの選択
複数セルを選択する場合は、Sheet.range()メソッドの第1引数に、セル番地を複数指定します。
たとえば、
>>> sht.range('A1, C3, E5').select()
を実行した場合には、A1・C3・E5セルを選択できます。
セル範囲の選択
以下のコードで、
>>> sht.range('A1:E5').select()
A1:E5セルを選択できます。
Sheet.range()メソッドには引数を2つ指定でき、
>>> sht.range('A1', 'E5').select()
でも、A1:E5セルが選択されます。
Sheet.cellsプロパティを使う場合
Sheet.cellsプロパティを使えば、数値を指定してセルを取得できます。
>>> sht.cells(3, 3).select()
で、C3セルを取得できます。
Sheet.range()メソッドの2つの引数には、Sheet.cellsプロパティ経由で取得したRangeオブジェクトも指定できます。
>>> sht.range(sht.cells(1, 1), sht.cells(3, 3)).select()
を実行すると、A1:C3セルが選択できます。
Sheet.range()の引数にタプルも指定できる
ここまでのサンプルは、Excel VBA的な書き方といえます。
xlwingsならではのコードとして、Sheet.range()メソッドの引数にタプルを指定する例をご紹介します。
先ほどの、
>>> sht.range(sht.cells(1, 1), sht.cells(3, 3)).select()
と同じ結果となる、Sheet.range()の引数にタプルを指定する例です。
>>> sht.range((1, 1), (3, 3)).select()
でも、A1:C3セルを選択できます。
最終更新日時:2023-04-17 13:19
Home » Python » xlwingsの使い方 » xlwingsでセルを選択する-Range.select()メソッド