Home » Python » xlwingsの使い方 » xlwingsで入力規則のリストを設定する

xlwingsで入力規則のリストを設定する

動作検証バージョン:Windows 11 Home + Python 3.10.6(64-bit) + xlwings 0.30.9 + 64bit Excel(バージョン2306 ビルド16529.20000)

「pythom xlwings 入力規則」
といった検索キーワードでアクセスがありました。

この記事では、Excelを操作するPythonの外部ライブラリ「xlwings」を使って、データの入力規則のリストを作成するスクリプトをご紹介します。

[スポンサードリンク]

xlwingsで入力規則のリストを設定するサンプル

以下のスクリプトを実行すると、新規にブックが作成され、アクティブシートのA1セルに、「a」「bb」「ccc」といった項目の表示されるリストが設定されます。

import xlwings as xw
from xlwings.constants import DVType

bk = xw.Book()
rng = bk.sheets.active.range('A1')

rng.api.Validation.Add(
    Type=DVType.xlValidateList,
    Formula1='a, bb, ccc'
)

入力規則を表すクラスはxlwingsにはない

2023年6月現在のxlwingsには、入力規則に関連するクラスは定義されていません。

そこで、Range.apiプロパティを経由して、Excel VBA的なコードを実行しています。

Excel VBAならばValidation.Addメソッド

Sub Add(Type As XlDVType, [AlertStyle], [Operator], [Formula1], [Formula2])

と定義されていますから、紹介済みのExcelマクロのように、いきなり

Type:=xlValidateList

と書くことが可能ですが、xlwingsの場合は無理です。

ですが、xlwingsパッケージのconstantsモジュールに、

class DVType:
    xlValidateCustom = 7  # from enum XlDVType
    xlValidateDate = 4  # from enum XlDVType
    xlValidateDecimal = 2  # from enum XlDVType
    xlValidateInputOnly = 0  # from enum XlDVType
    xlValidateList = 3  # from enum XlDVType
    xlValidateTextLength = 6  # from enum XlDVType
    xlValidateTime = 5  # from enum XlDVType
    xlValidateWholeNumber = 1  # from enum XlDVType

と定義されているので、このDVTypeクラスを事前にインポートして、

from xlwings.constants import DVType

Validation.Addメソッドの引数Typeに「DVType.xlValidateList」を指定しています。

rng.api.Validation.Add(
    Type=DVType.xlValidateList,
    Formula1='a, bb, ccc'
)

最終更新日時:2023-06-13 16:20

[スポンサードリンク]

Home » Python » xlwingsの使い方 » xlwingsで入力規則のリストを設定する

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

検索


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

.