PythonでExcelスプレッドシートにドロップダウンリストを作成する

Excelスプレッドシートの柔軟性と機能性は、あらゆる業界の人々に高く評価されています。Excelスプレッドシートでは、ドロップダウンリスト機能は、データ入力の効率と正確性を向上させる重要なツールです。ユーザーに事前に設定された選択肢を提供し、入力範囲を制限し、手動入力エラーを回避し、データ入力プロセスを簡素化し、データの一貫性を確保することができます。大量のデータを処理する場合、ドロップダウンリスト(オプションのリスト)を使用してデータ形式と内容を標準化することで、データ分析の有効性と信頼性を確保することができます。この記事では、**Pythonを使用してExcelスプレッドシートにドロップダウンリストを作成する方法**を紹介します。

- **[Excelスプレッドシートのセルのデータを使用してドロップダウンリストを作成する](#excelスプレッドシートのセルのデータを使用してドロップダウンリストを作成する)**
- **[Excelスプレッドシートの文字列を使用してドロップダウンリストを作成する](#excelスプレッドシートの文字列を使用してドロップダウンリストを作成する)**

この記事で使用されている方法は、[Spire.XLS for Python](https://www.e-iceblue.com/Download/Spire-XLS-Python.html)に基づいています。PyPI：`pip install Spire.XLS`。

[無料ライセンスを申請する](https://www.e-iceblue.com/TemLicense.html)

## Excelスプレッドシートのセルのデータを使用してドロップダウンリストを作成する
Excelスプレッドシートのドロップダウンリストの作成は、データ検証機能を使用して実現できます。ライブラリの `CellRange.DataValidation.DataRange` プロパティを使用すると、セルまたはセルの範囲にデータ検証を設定し、ドロップダウンリストを作成し、指定された範囲のセルの値をドロップダウンリストのオプションとして使用できます。操作手順は次のとおりです。
1. 必要なモジュールをインポートします。
2. `Workbook` クラスインスタンスを作成します。
3. `Workbook.LoadFromFile()` メソッドを使用してExcelファイルを読み込みます。
4. `Workbook.Worksheets.get_Item()` メソッドを使用してワークシートを取得します。
5. `Workheet.Range[]` プロパティを使用して特定のセル領域を取得します。
6. `CellRange.DataValidation.DataRange` プロパティを使用して、セル領域のデータ検証のデータ範囲を設定し、セルの値を含むドロップダウンリストを作成します。
7. `Workbook.SaveToFile()` メソッドを使用してワークブックを保存します。
8. リソースを解放します。

**コード例**
```python
from spire.xls import *
from spire.xls.common import *

# Workbookのインスタンスを作成
workbook = Workbook()

# Excelファイルをロードする
workbook.LoadFromFile("Sample.xlsx")

# 最初のワークシートを取得する
sheet = workbook.Worksheets.get_Item(0)

# 特定のセル範囲を取得する
cellRange = sheet.Range["C3:C7"]

# データの検証範囲を設定し、セル範囲内にドロップダウンリストを作成する
cellRange.DataValidation.DataRange = sheet.Range["F4:H4"]

# ワークブックを保存する
workbook.SaveToFile("output/Excelのドロップダウンリスト.xlsx", FileFormat.Version2016)
workbook.Dispose()
```

**結果**
![PythonでExcelシートにドロップダウンリストを作成](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/278784/80b0a8d8-0d02-38f0-520e-afd92f332f4f.png)

## Excelスプレッドシートの文字列を使用してドロップダウンリストを作成する
セルの値をドロップダウンリストオプションとして設定する以外に、`CellRange.DataValidation.Values` プロパティを使用して文字列を直接ドロップダウンリストオプションとして設定することもできます。これにより、オプションを固定し、セルの値の変更に応じて変更されないようにします。操作手順は次のとおりです。
1. 必要なモジュールをインポートします。
2. `Workbook` クラスインスタンスを作成します。
3. `Workbook.LoadFromFile()` メソッドを使用してExcelファイルを読み込みます。
4. `Workbook.Worksheets.get_Item()` メソッドを使用してワークシートを取得します。
5. `Workheet.Range[]` プロパティを使用して特定のセル領域を取得します。
6. `CellRange.DataValidation.Values` プロパティを使用して、セル領域のデータ検証の文字列を設定し、指定された文字列を含むドロップダウンリストを作成します。
7. `Workbook.SaveToFile()` メソッドを使用してワークブックを保存します。
8. リソースを解放します。

**コード例**
```python
from spire.xls import *
from spire.xls.common import *

# Workbookのインスタンスを作成
workbook = Workbook()

# Excelファイルをロードする
workbook.LoadFromFile("Sample.xlsx")

# 最初のワークシートを取得する
sheet = workbook.Worksheets.get_Item(0)

# セル範囲を取得する
cellRange = sheet.Range["D3:D7"]

# データの検証値を設定し、ドロップダウンリストを作成する
cellRange.DataValidation.Values = ["初級社員", "技術者", "課長", "部長"]

# ワークブックを保存する
workbook.SaveToFile("output/Excelのドロップダウンリスト.xlsx", FileFormat.Version2016)
workbook.Dispose()
```

**結果**
![PythonでExcelシートにドロップダウンリストを作成](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/278784/916ab275-7e17-d667-1091-17ebc4680b42.png)

この記事では、Pythonを使用してデータ検証機能を通じてExcelワークシートにドロップダウンリストを作成する方法について説明しました。

Excelファイル処理のヒントについては、[Spire.XLS for Pythonチュートリアル](https://www.e-iceblue.com/Tutorials/Python/Spire.XLS-for-Python/Program-Guide/Spire.XLS-for-Python-Program-Guide-Content.html)をご覧ください。