「columnwidth xlwings」
という検索で、このサイト『インストラクターのネタ帳』へのアクセスがありました。
Excelを操作するPythonの外部ライブラリ「xlwings」を使って、列の幅を操作するにはどのようなコードを書けばいいのかを調べていらしたのでしょう。
検索キーワードから、Excel VBAのRange.ColumnWidthプロパティに相当するプロパティが、
xlwingsでは何なのかを調べていた可能性が高そうに思えます。
xlwingsではRange.column_widthが列幅を表す
結論。
xlwingsでは、Rangeオブジェクトのcolumn_widthプロパティを使えば、Excelの列幅を取得・設定できます。
VBAのプロパティ等はパスカル形式で定義されていますが、Pythonの場合はスネーク形式が使われます。
xlwingsは、基本的にこのルールに則って実装されているため、Excel VBAの「ColumnWidth」は「column_width」になっています。
ちなみに、Range.column_widthプロパティは、_xlwindows.pyモジュールで
@property
def column_width(self):
if self.xl is not None:
return self.xl.ColumnWidth
else:
return 0
@column_width.setter
def column_width(self, value):
if self.xl is not None:
self.xl.ColumnWidth = value
と定義されています。
xlwingsのRange.column_widthを確認するサンプル
拙著『VBAユーザーのためのPython超入門』でも多用しているIDLEのShellウィンドウなどで、以下のコードを実行してみてください。
bk = xw.Book()
sht = bk.sheets.active
rng = sht.range('A1')
rng.value = "'000010000100001"
print(rng.column_width)
新規にブックが作成され、アクティブシートのA列の列幅がおよそ15文字分に設定され、A1セルに文字列「000010000100001」と入力されてから、A列の列幅「15.0」が出力されます。
One unit of column width is equal to the width of one character in the Normal style. For proportional fonts, the width of the character 0 (zero) is used.
とのことなので、約15文字分であることを確認しやすいように、文字列「000010000100001」をA1セルに入力する処理も入れています。
- 『VBAユーザーのためのPython超入門』出ました。
- IDLEを使わないPython入門書が何故多いのか
- 『VBAユーザーのためのPython超入門』に登場するVBA関数一覧
- 『VBAユーザーのためのPython超入門』に登場するPythonの関数・メソッド一覧
最終更新日時:2023-04-27 10:37
Home » Python » xlwingsの使い方 » xlwingsで列幅を表すColumnWidthは?-Range.column_widthプロパティ