Home » Python » xlwingsの使い方 » xlwingsでセル内水平方向の配置を設定する-api.HorizontalAlignmentプロパティ

xlwingsでセル内水平方向の配置を設定する-api.HorizontalAlignmentプロパティ

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

Excel VBAの場合、RangeオブジェクトのHorizontalAlignmentプロパティを使って、

セル内文字列の水平方向の配置を取得・設定できます。

それに対しExcel自体を操作する外部パッケージ「xlwings」の場合は、セルを表すRangeクラスにセル内文字列の配置を取得・設定するプロパティは実装されていません。

[スポンサードリンク]

もしも実装されていれば、horizontal_alignmentといった名前のプロパティが存在するはずです。

xlwingsでセル内文字列の水平方向の配置を設定するには、Range.apiプロパティを経由して、HorizontalAlignmentプロパティを利用する必要があります。

Range.api.HorizontalAlignmentに直値を指定してセル内の水平方向の配置を設定する

以下のスクリプトを実行すると、新規にブックがされて、そのアクティブシートのA1セルに文字列「abc」が入力され、水平方向の配置が中央揃えに設定されます。

import xlwings as xw

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

rng = sht['A1']
rng.value = 'abc'
rng.api.HorizontalAlignment = -4108

Range.api.HorizontalAlignmentプロパティに、直値「-4108」を指定すると、

セル内の水平方向の配置が中央揃えになります。

Range.api.HorizontalAlignmentに定数を使ってセル内の水平方向の配置を設定する

以下のような定数を使った指定も可能です。

import xlwings as xw
from xlwings.constants import HAlign

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

rng = sht['A1']
rng.value = 'abc'
rng.api.HorizontalAlignment = HAlign.xlHAlignCenter

xlwingsのconstants.pyモジュールに、水平方向の配置を指定するHAlignクラスに、Excel VBAのHAlign列挙型に定義されている定数が、

以下のように定義されています。

class HAlign:
    xlHAlignCenter = -4108 # from enum XlHAlign
    xlHAlignCenterAcrossSelection = 7 # from enum XlHAlign
    xlHAlignDistributed = -4117 # from enum XlHAlign
    xlHAlignFill = 5 # from enum XlHAlign
    xlHAlignGeneral = 1 # from enum XlHAlign
    xlHAlignJustify = -4130 # from enum XlHAlign
    xlHAlignLeft = -4131 # from enum XlHAlign
    xlHAlignRight = -4152 # from enum XlHAlign

このHAlignクラスをインポートしておくことで、

from xlwings.constants import HAlign

Range.api.HorizontalAlignmentプロパティに定数を使った指定ができます。

rng.api.HorizontalAlignment = HAlign.xlHAlignCenter

最終更新日時:2023-08-16 10:01

[スポンサードリンク]

Home » Python » xlwingsの使い方 » xlwingsでセル内水平方向の配置を設定する-api.HorizontalAlignmentプロパティ

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

検索


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

.