Excel VBAの場合、RangeオブジェクトのHorizontalAlignmentプロパティを使って、
セル内文字列の水平方向の配置を取得・設定できます。
それに対しExcel自体を操作する外部パッケージ「xlwings」の場合は、セルを表すRangeクラスにセル内文字列の配置を取得・設定するプロパティは実装されていません。
もしも実装されていれば、horizontal_alignmentといった名前のプロパティが存在するはずです。
xlwingsでセル内文字列の水平方向の配置を設定するには、Range.apiプロパティを経由して、HorizontalAlignmentプロパティを利用する必要があります。
Range.api.HorizontalAlignmentに直値を指定してセル内の水平方向の配置を設定する
以下のスクリプトを実行すると、新規にブックがされて、そのアクティブシートのA1セルに文字列「abc」が入力され、水平方向の配置が中央揃えに設定されます。
import xlwings as xwbk = xw.Book()
rng = sht['A1']
sht = bk.sheets.active
rng.value = 'abc'
rng.api.HorizontalAlignment = -4108
Range.api.HorizontalAlignmentプロパティに、直値「-4108」を指定すると、
セル内の水平方向の配置が中央揃えになります。
Range.api.HorizontalAlignmentに定数を使ってセル内の水平方向の配置を設定する
以下のような定数を使った指定も可能です。
from xlwings.constants import HAlign
bk = xw.Book()
sht = bk.sheets.active
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プロパティ