Home » Python » xlwingsの使い方 » xlwingsのRange.shapeの戻り値はShapeではなくタプル

xlwingsのRange.shapeの戻り値はShapeではなくタプル

動作検証バージョン:Windows 11 Home + Python 3.10.6(64-bit) + xlwings 0.30.9 + 64bit Excel(バージョン2307 ビルド16626.20000 クイック実行)

Excel VBAユーザーの方が、Excelそのものを操作する便利なライブラリ「xlwings」を使い始めたときに、注意が必要なプロパティがいくつかあります。
Rangeオブジェクトのshapeプロパティがその1つです。

Excel VBAをご存じで、pandas等を使ったことがない場合、Range.shapeは図形を表すShapeオブジェクトを取得するためのプロパティだと誤解してしまうような気がします。

[スポンサードリンク]

xlwingsのRange.shapeの戻り値を確認する

Range.shapeの戻り値がShapeオブジェクトではないことを確認しましょう。

Excelを起動して、セルを選択しておいてから以下のコードを実行してください。

import xlwings as xw

bk = xw.books.active
rng = bk.selection
print(rng.shape)

セルが1つだけ選択された状態であれば、

(1, 1)

と出力されます。

また、2行×3列のセル範囲を選択しておいて実行したときには

(2, 3)

と出力されます。

xlwingsのRange.shapeの戻り値はタプル

xlwingsのRange.shapeプロパティの戻り値は、上記コードの実行結果からわかるとおりタプルです。
セル範囲が、何行×何列かを示すタプルです。

Shapeオブジェクトではありません。

現在のPython人気を支える外部ライブラリの1つpandasに、DataFrame.shapeプロパティがあります。

このDataFrame.shapeの戻り値は、DataFrameが何行×何列かを示すタプルが戻り値です。

この仕様にxlwingsのRange.shapeも準拠して、セル範囲が何行×何列かを示すタプルが戻り値となっています。

最終更新日時:2023-07-26 11:53

[スポンサードリンク]

Home » Python » xlwingsの使い方 » xlwingsのRange.shapeの戻り値はShapeではなくタプル

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

検索


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

.