Home » Python » xlwingsの使い方 » xlwingsのSheetオブジェクトでは複数シートを選択できない

xlwingsのSheetオブジェクトでは複数シートを選択できない

動作検証バージョン:Windows 11 Home + Python 3.10.6(64-bit) + xlwings 0.29.1 + 64bit Excel(バージョン2304 ビルド16327.20248)

pywin32・win32com.clientを使って、Excelのシートを複数選択するサンプルコードをご紹介しています。

Excelを操作する外部ライブラリ「xlwings」でも、同様の操作が可能だろうと考える方がいらっしゃるかもしれません。

[スポンサードリンク]

残念ながら、xlwingsに用意されているSheetオブジェクトでは、複数シートを選択はできません。

Excel VBAのWorksheet.Selectメソッドのように、引数Replaceを指定できるようにはなっていないためです。
xlwingsの_xlwindows.pyモジュールのSheetクラスで、select()メソッドは以下のように定義されています。

def select(self):
    return self.xl.Select()

Sheet.select()に引数を指定すると……

試しに、2枚以上ワークシートの存在するブックがアクティブな状態で以下のコードを実行すると、

import xlwings as xw

bk = xw.books.active

bk.sheets[0].select()
bk.sheets[1].select(True)

「bk.sheets[1].select(True)」の行で、例外「TypeError: Sheet.select() takes 1 positional argument but 2 were given」が発生します。

Book.apiを使って複数シートを選択する

もちろん、Bookオブジェクトのapiプロパティを経由してやれば、pywin32・win32com.clientを使う場合と同じような以下のコードで複数のシートを選択できます。

import xlwings as xw

bk = xw.books.active

bk.api.Worksheets(1).Select()
bk.api.Worksheets(2).Select(Replace=False)

最終更新日時:2023-06-01 13:44

[スポンサードリンク]

Home » Python » xlwingsの使い方 » xlwingsのSheetオブジェクトでは複数シートを選択できない

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

検索


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

.