Home » Python » xlwingsの使い方 » xlwingsでセルを結合する-Range.merge()メソッド

xlwingsでセルを結合する-Range.merge()メソッド

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

「セル結合 python xlwings」
「python セル 結合 xlwings」
といった検索キーワードで時折アクセスがあります。

Pythonの外部ライブラリxlwingsを使って、セルを結合するにはどのようなコードを書けばいいのか調べていた方による検索でしょう。

xlwingsでセルを結合するサンプル

以下のスクリプトを実行すると、新規にExcelブックが作成され、アクティブシートのA1:C2セルが結合され1つのセルになります。

import xlwings as xw

bk = xw.Book()
sht = bk.sheets.active

sht.range('A1:C2').merge()

Excel VBAでRange.Mergeメソッドを使えばセルを結合できるのと同様、xlwingsでもRangeオブジェクトのmerge()メソッドでセルを結合できます。

Range.merge()の引数acrossにTrueを指定すると横方向に結合

Excel VBAのRange.Mergeメソッドに引数Acrossを指定できるのと同様、xlwingsのRange.merge()メソッドでも引数acrossにTrueを指定することで、横方向にセルを結合できます。

先ほどのスクリプトにつづいて、

sht.range('A4:C5').merge(across=True)

を実行すると、
  A4:C4セル
  A5:C5セル
が、それぞれ結合されます。

データがあってもRange.merge()でメッセージは表示されない

Excel VBAの場合、データの存在するセルを結合しようとすると、
「セルを結合すると、左上の値のみが保持され、他のセルの値は破棄されます。」
メッセージが表示されます。

それに対しxlwingsの場合は、セルにデータがあったとしてもメッセージは表示されません。

main.pyモジュールのRangeクラスで、以下のように定義されているためです。

def merge(self, across=False):
    with self.sheet.book.app.properties(display_alerts=False):
        self.impl.merge(across)

最終更新日時:2023-10-13 12:17

[スポンサードリンク]

Home » Python » xlwingsの使い方 » xlwingsでセルを結合する-Range.merge()メソッド

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

検索


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

.