作成日: 2023/04/21 最終更新日: 2023/04/21
文書種別
使用方法
詳細
C1ExcelのXLDataValidationクラスを使用すると、Excelのセルにドロップダウンリストを設定することができます。
最初に、XLDataValidationのValidationTypeプロパティを「List」に設定し、FirstFormulaプロパティにドロップダウンのリスト項目として使用するシートのセル範囲を指定します。
次いで、XLDataValidationのRangesプロパティに、ドロップダウンを設定するセル範囲を指定し、シートのDataValidationsプロパティに、このXLDataValidationのインスタンスを追加します。
以下に、1列目の1~5行にドロップダウンを設定するサンプルを紹介します。

◎サンプルコード(VB)
最初に、XLDataValidationのValidationTypeプロパティを「List」に設定し、FirstFormulaプロパティにドロップダウンのリスト項目として使用するシートのセル範囲を指定します。
次いで、XLDataValidationのRangesプロパティに、ドロップダウンを設定するセル範囲を指定し、シートのDataValidationsプロパティに、このXLDataValidationのインスタンスを追加します。
以下に、1列目の1~5行にドロップダウンを設定するサンプルを紹介します。
◎サンプルコード(VB)
Imports C1.C1Excel
Public Class Form1
Private Sub btnCreateDropdown_Click(sender As Object, e As EventArgs) Handles btnCreateDropdown.Click
'2枚目のシートを追加
C1XLBook1.Sheets.Add()
'シート名を設定
Dim sheet1 As XLSheet = C1XLBook1.Sheets(0)
Dim sheet2 As XLSheet = C1XLBook1.Sheets(1)
'シート2に、ドロップダウンリストの項目を追加
sheet2(0, 0).Value = "AAA"
sheet2(1, 0).Value = "BBB"
sheet2(2, 0).Value = "CCC"
'ドロップダウン追加のためにDataValidation(データ検証のソース)を設定
Dim dataValid As New XLDataValidation(C1XLBook1) With {
.ValidationType = XLValidationType.List,
.FirstFormula = "=Sheet2!$A$1:$A$3",
.AllowBlank = True
}
'ドロップダウンを設定するセル範囲を指定
dataValid.Ranges.Add(New XLRange(0, 0, 4, 0))
'シート1で、上記セル範囲にドロップダウンを設定
sheet1.DataValidations.Add(dataValid)
'Excelファイルの保存と表示
C1XLBook1.Save("..\..\TestBook1.xlsx")
System.Diagnostics.Process.Start("..\..\TestBook1.xlsx")
End Sub
End Class
◎サンプルコード(C#)
using C1.C1Excel;
namespace prj_C1Excel
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
//2枚目のシートを追加
c1XLBook1.Sheets.Add();
//シート名を設定
XLSheet sheet1 = c1XLBook1.Sheets[0];
XLSheet sheet2 = c1XLBook1.Sheets[1];
//シート2に、ドロップダウンリストの項目を追加
sheet2[0, 0].Value = "AAA";
sheet2[1, 0].Value = "BBB";
sheet2[2, 0].Value = "CCC";
//ドロップダウン追加のためにDataValidation(データ検証のソース)を設定
XLDataValidation dataValid = new XLDataValidation(c1XLBook1){
ValidationType = XLValidationType.List,
FirstFormula = "=Sheet2!$A$1:$A$3",
AllowBlank = true
};
//ドロップダウンを設定するセル範囲を指定
dataValid.Ranges.Add(new XLRange(0, 0, 4, 0));
//シート1で、上記セル範囲にドロップダウンを設定
sheet1.DataValidations.Add(dataValid);
//Excelファイルの保存と表示
c1XLBook1.Save(@"..\..\TestBook1.xlsx");
System.Diagnostics.Process.Start(@"..\..\TestBook1.xlsx");
}
}
}