動作検証バージョン: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
Type=DVType.xlValidateList,
Formula1='a, bb, ccc'
)
from xlwings.constants import DVType
bk = xw.Book()
rng = bk.sheets.active.range('A1')
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
[スポンサードリンク]
- Newer:Pythonで日時をyyyymmddhhmmss形式で取得する-datetime.strftime('%Y%m%d%H%M%S')
- Older:VBAで配列の最後の要素を取得する-UBound関数
Home » Python » xlwingsの使い方 » xlwingsで入力規則のリストを設定する