Excel ドロップダウンリストはデータ検証機能です。この機能は、指定されたセルに入力されたデータを制限し、事前定義された値セットから値を選択する必要があります。この記事では、Spire.XLS for .NET を使用して、C# および VB.NET でプログラムによって Excel でドロップダウンリストを作成する方法を紹介します。
Spire.XLS for .NET をインストールします
まず、Spire.XLS for .NET パッケージに含まれている DLL ファイルを .NET プロジェクトの参照として追加する必要があります。DLL ファイルは、このリンクからダウンロードするか、NuGet を介してインストールできます。
PM> Install-Package Spire.XLS
セル範囲の値に基づいたドロップダウンリストを作成する
Spire.XLS for .NET を使用すると、値をセル範囲に追加し、指定したデータ範囲をデータ検証ソースとして参照して、ドロップダウンリストを作成できます。この方法は少し時間がかかりますが、結果文書のセルの値を直接変更することで、ドロップダウンリストの項目を簡単に更新できます。以下は具体的な操作手順です。
- Workbook オブジェクトを作成します。
- Workbook.LoadFromFile() メソッドを使用して、サンプルドキュメントをロードします。
- Workbook.Worksheets[] プロパティを使用して、指定したシートを取得します。
- Worksheet.Range[] プロパティを使用して、指定したセルまたはセル範囲を取得します。
- XlsRange.Value プロパティを使用して、指定したセルに値を追加します。
- XlsRange.DataValidation プロパティを使用して、指定したセル範囲のデータ入力規則を取得します。
- Validation.DataRange プロパティを使用して、指定したデータ範囲をデータ検証ソースとして参照することにより、ドロップダウンリストを作成します。
- Workbook.SaveToFile() メソッドを使用して、結果文書を保存します。
- C#
- VB.NET
using Spire.Xls;
namespace DropdownList
{
class Program
{
static void Main(string[] args)
{
//Workbookオブジェクトを作成する
Workbook workbook = new Workbook();
//サンプルドキュメントをロードする
workbook.LoadFromFile(@"E:\Files\input.xlsx");
//最初のシートを取得する
Worksheet sheet = workbook.Worksheets[0];
//指定したセルに値を追加する
sheet.Range["A10"].Value = "テニス";
sheet.Range["A11"].Value = "バスケットボール";
sheet.Range["A12"].Value = "サッカー";
//指定したデータ範囲をデータ検証ソースとして参照することにより、ドロップダウンリストを作成する
sheet.Range["C2:C7"].DataValidation.DataRange = sheet.Range["A10:A12"];
//結果文書を保存する
workbook.SaveToFile("ExcelDropdownList.xlsx", ExcelVersion.Version2010);
}
}
}
Imports Spire.Xls
Namespace DropdownList
Class Program
Private Shared Sub Main(ByVal args As String())
'Workbookオブジェクトを作成する
Dim workbook As Workbook = New Workbook()
'サンプルドキュメントをロードする
workbook.LoadFromFile("E:\Files\input.xlsx")
'最初のシートを取得する
Dim sheet As Worksheet = workbook.Worksheets(0)
'指定したセルに値を追加する
sheet.Range("A10").Value = "テニス"
sheet.Range("A11").Value = "バスケットボール"
sheet.Range("A12").Value = "サッカー"
'指定したデータ範囲をデータ検証ソースとして参照することにより、ドロップダウンリストを作成する sheet.Range("C2:C7").DataValidation.DataRange = sheet.Range("A10:A12")
'結果文書を保存する
workbook.SaveToFile("ExcelDropdownList.xlsx", ExcelVersion.Version2010)
End Sub
End Class
End Namespace
文字列配列の値に基づいたドロップダウンリストを作成する
Excel では値リストを手動で入力することでドロップダウンリストを作成できます。この方法では、Excel セルにデータを追加しないようにして、Excel ドキュメントの整然とした順序を保つことができます。以下は具体的な操作手順です。
- Workbook オブジェクトを作成します。
- Workbook.Worksheets[] プロパティを使用して、指定したシートを取得します。
- セルにテキストを追加し、セルフォントスタイルを設定します。
- Worksheet.Range[] プロパティを使用して、指定したセルまたはセル範囲を取得します。
- XlsRange.DataValidation プロパティを使用して、指定したセル範囲のデータの入力規則を取得します。
- Validation.Values プロパティを使用して、ドロップダウンリストの値を設定します。
- Validation.IsSuppressDropDownArrow プロパティを false に設定するで、指定したセルにドロップダウンリストを作成します。
- Workbook.SaveToFile() メソッドを使用して、結果文書を保存します。
- C#
- VB.NET
using Spire.Xls;
namespace DropdownList2
{
class Program
{
static void Main(string[] args)
{
//Workbookオブジェクトを作成する
Workbook workbook = new Workbook();
//最初のシートを取得する
Worksheet sheet = workbook.Worksheets[0];
//セルB 2にテキストを追加し、フォントスタイルを設定する
sheet.Range["B2"].Value = "興味";
sheet.Range["B2"].Style.Font.IsBold = true;
sheet.Range["B2"].Style.KnownColor = ExcelColors.LightTurquoise;
//ドロップダウンリストの値を設定する
sheet.Range["C2"].DataValidation.Values = new string[] { "テニス", "バスケットボール", "サッカー" };
//指定したセルにドロップダウンリストを作成する
sheet.Range["C2"].DataValidation.IsSuppressDropDownArrow = false;
//結果文書を保存する
workbook.SaveToFile("ExcelDropdownList.xlsx", ExcelVersion.Version2010);
}
}
}
Imports Spire.Xls
Namespace DropdownList2
Class Program
Private Shared Sub Main(ByVal args As String())
'Workbookオブジェクトを作成する
Dim workbook As Workbook = New Workbook()
'最初のシートを取得する
Dim sheet As Worksheet = workbook.Worksheets(0)
'セルB 2にテキストを追加し、フォントスタイルを設定する
sheet.Range("B2").Value = "興味"
sheet.Range("B2").Style.Font.IsBold = True
sheet.Range("B2").Style.KnownColor = ExcelColors.LightTurquoise
'ドロップダウンリストの値を設定する
sheet.Range("C2").DataValidation.Values = New String() { "テニス", "バスケットボール", "サッカー" }
'指定したセルにドロップダウンリストを作成する
sheet.Range("C2").DataValidation.IsSuppressDropDownArrow = False
'結果文書を保存する
workbook.SaveToFile("ExcelDropdownList.xlsx", ExcelVersion.Version2010)
End Sub
End Class
End Namespace
一時ライセンスを申請する
結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。