SPREAD for WPF 4.0J - GcSpreadSheet
データ検証
MESCIUS SPREAD for WPF 4.0J - GcSpreadSheet > 開発者ガイド > データ検証

GcSpreadSheetは、データ検証に対応しておりユーザーによる無効な入力を制限できます。

次のテーブルは、ユーザーがセルに入力できる内容を制御するさまざまな種類のデータ検証アラートを説明します。データ検証アラートはDataValidationErrorStyle列挙体の値で指定します。

データ検証アラート 動作

Stop

停止ウィンドウは、セルやセル範囲に無効なデータが入力されないようにします。このアラートが表示される場合、セルに指定されたデータ検証基準を満たす値を入力する必要があります。停止ウィンドウには、2 つのオプションがあります。[OK]で有効な値を入力するためにダイアログを閉じ、[キャンセル]オプションで無効な値を消します。

Warning 警告ウィンドウは、ユーザーを入力されたデータが無効であることを警告します。このアラートには3つのオプションがあります。[はい] をクリックして無効な入力を受け入れるか、[いいえ] のオプションで無効な入力値を編集するか、[キャンセル]をクリックして無効な入力値を削除します。
Information 情報ウィンドウは、入力されたデータが無効であることを通知します。このアラートウィンドウには2つのオプションがあります。[OK]で無効な入力を受け入れるか、[キャンセル]をクリックして無効な入力値を削除します。

整数検証

本種類の検証は、セルやセル範囲に整数による検証を有効にし、DataValidationOperator列挙体を使用してさまざまな入力を制限します。DataValidationType列挙体のWholeNumber値を使用してデータ値が整数であるかどうかを検証できます。

コードのコピー
// 整数検証
GcSpreadSheet.Workbook.ActiveSheet.Cells["A1"].Text = "整数検証";
            
var dvWholeNumber = 
GcSpreadSheet.Workbook.ActiveSheet.Cells["B1:C2"].Validation.Add(GrapeCity.Spreadsheet.DataValidationType.WholeNumber,
GrapeCity.Spreadsheet.DataValidationErrorStyle.Warning, GrapeCity.Spreadsheet.DataValidationOperator.Between, "18", "59");
            
dvWholeNumber.ShowError = true;
dvWholeNumber.IgnoreBlank = false;
dvWholeNumber.ErrorMessage = "18〜59の整数を入力してください。";
dvWholeNumber.ErrorTitle = "無効なデータです。";
コードのコピー
' 整数検証
GcSpreadSheet.Workbook.ActiveSheet.Cells("A1").Text = "整数検証"

Dim dvWholeNumber =
GcSpreadSheet.Workbook.ActiveSheet.Cells("B1:C2").
Validation.Add(GrapeCity.Spreadsheet.DataValidationType.WholeNumber,
GrapeCity.Spreadsheet.DataValidationErrorStyle.Warning,
GrapeCity.Spreadsheet.DataValidationOperator.Between, "18", "59")

dvWholeNumber.ShowError = True
dvWholeNumber.IgnoreBlank = False
dvWholeNumber.ErrorMessage = "18〜59の整数を入力してください。"
dvWholeNumber.ErrorTitle = "無効なデータです。"

小数点検証

本種類の検証は、セルやセル範囲に小数点による検証を有効にし、DataValidationOperator列挙体を使用してさまざまな入力を制限します。DataValidationType列挙体のDecimal値を使用してワークシートに小数点検証を適用できます。

 

コードのコピー
// 小数点検証
GcSpreadSheet.Workbook.ActiveSheet.Cells["A4"].Text = "小数点検証";
            
var dvDecimal = GcSpreadSheet.Workbook.ActiveSheet.Cells["B4:C5"].
Validation.Add(GrapeCity.Spreadsheet.DataValidationType.Decimal, 
            
GrapeCity.Spreadsheet.DataValidationErrorStyle.Stop, 
GrapeCity.Spreadsheet.DataValidationOperator.GreaterThan, "100.1", "");
dvDecimal.ShowError = true;
コードのコピー
'小数点検証
GcSpreadSheet.Workbook.ActiveSheet.Cells("A4").Text = "小数点検証"

Dim dvDecimal = GcSpreadSheet.Workbook.ActiveSheet.Cells("B4:C5").
Validation.Add(GrapeCity.Spreadsheet.DataValidationType.Decimal,
GrapeCity.Spreadsheet.DataValidationErrorStyle.[Stop],
GrapeCity.Spreadsheet.DataValidationOperator.GreaterThan, "100.1", "")

dvDecimal.ShowError = True

リスト検証

本種類の検証は、セルやセル範囲に指定されたリスト内の値のみが入力されるようにします。DataValidationType列挙体のList値を使用してワークシートにリスト検証を適用できます。

コードのコピー
// リスト検証
GcSpreadSheet.Workbook.ActiveSheet.Cells["A7"].Text = "リスト検証";
            
var dvList = 
GcSpreadSheet.Workbook.ActiveSheet.Cells["B7:C8"].
Validation.Add(GrapeCity.Spreadsheet.DataValidationType.List, 
GrapeCity.Spreadsheet.DataValidationErrorStyle.Stop, 
GrapeCity.Spreadsheet.DataValidationOperator.Between, "XS,S,M,L,XL, XXL", "");
            
dvList.ShowError = true;
dvList.IgnoreBlank = true;
dvList.InCellDropdown = true;
コードのコピー
 '小数点検証
 GcSpreadSheet.Workbook.ActiveSheet.Cells("A7").Text = "小数点検証"

 Dim dvList =
GcSpreadSheet.Workbook.ActiveSheet.Cells("B7:C8").Validation.Add(GrapeCity.Spreadsheet.DataValidationType.List,
 GrapeCity.Spreadsheet.DataValidationErrorStyle.Stop, GrapeCity.Spreadsheet.DataValidationOperator.Between, "XS,S,M,L,XL, XXL", "")

 dvList.ShowError = True
 dvList.IgnoreBlank = True
 dvList.InCellDropdown = True

日付検証

本種類の検証は、セルやセル範囲に日付による検証を有効にし、DataValidationOperator列挙体を使用してさまざまな入力を制限します。DataValidationType列挙体のDate値を使用してワークシートに日付検証を適用できます。

コードのコピー
// 日付検証
GcSpreadSheet.Workbook.ActiveSheet.Cells["A10"].Text = "日付検証";
            
var dvDate = 
GcSpreadSheet.Workbook.ActiveSheet.Cells["B10:C11"].
Validation.Add(GrapeCity.Spreadsheet.DataValidationType.Date, 
GrapeCity.Spreadsheet.DataValidationErrorStyle.Stop, 
GrapeCity.Spreadsheet.DataValidationOperator.LessThan, "=TODAY()", "");
            
dvDate.IgnoreBlank = true;
dvDate.ShowError = true;
dvDate.ErrorTitle = "無効な日付です。";
dvDate.ErrorMessage = "日付は今日より前である必要があります。";
コードのコピー
'日付検証
GcSpreadSheet.Workbook.ActiveSheet.Cells("A10").Text = "日付検証"

Dim dvDate =
GcSpreadSheet.Workbook.ActiveSheet.Cells("B10:C11").Validation.Add(GrapeCity.Spreadsheet.DataValidationType.Date,
    GrapeCity.Spreadsheet.DataValidationErrorStyle.[Stop],
    GrapeCity.Spreadsheet.DataValidationOperator.LessThan, "=TODAY()", "")

dvDate.IgnoreBlank = True
dvDate.ShowError = True
dvDate.ErrorTitle = "無効な日付です。"
dvDate.ErrorMessage = "日付は今日より前である必要があります。"

時刻検証

本種類の検証は、セルやセル範囲に時刻による検証を有効にし、DataValidationOperator列挙体を使用してさまざまな入力を制限します。DataValidationType列挙体のTime値を使用してワークシートに時刻検証を適用できます。

コードのコピー
// 時刻検証
GcSpreadSheet.Workbook.ActiveSheet.Cells["A13"].Text = "時刻検証";
            
var dvTime = GcSpreadSheet.Workbook.ActiveSheet.Cells["B13:C14"].
Validation.Add(GrapeCity.Spreadsheet.DataValidationType.Time, 
GrapeCity.Spreadsheet.DataValidationErrorStyle.Stop, 
GrapeCity.Spreadsheet.DataValidationOperator.Between, "09:00", "17:00");
            
dvTime.ShowError = true;
dvTime.IgnoreBlank = true;
dvTime.ErrorTitle = "無効な時刻です。";
dvTime.ErrorMessage = "時間は09:00〜17:00の間である必要があります。";
コードのコピー
'時刻検証
GcSpreadSheet.Workbook.ActiveSheet.Cells("A13").Text = "時刻検証"

Dim dvTime = GcSpreadSheet.Workbook.ActiveSheet.Cells("B13:C14").
Validation.Add(GrapeCity.Spreadsheet.DataValidationType.Time,
GrapeCity.Spreadsheet.DataValidationErrorStyle.[Stop],
GrapeCity.Spreadsheet.DataValidationOperator.Between, "09:00", "17:00")

dvTime.ShowError = True
dvTime.IgnoreBlank = True
dvTime.ErrorTitle = "無効な時刻です。"
dvTime.ErrorMessage = "時間は09:00〜17:00の間である必要があります。"

テキスト長検証

本種類の検証は、セルやセル範囲に入力されたテキストの長さを判定して入力可能な文字数を制限します。DataValidationType列挙体のTextLength 値を使用してワークシートにテキスト長検証を適用できます。

コードのコピー
// テキスト長検証
GcSpreadSheet.Workbook.ActiveSheet.Cells["A16"].Text = "テキスト長検証";
            
var dvTextLength = GcSpreadSheet.Workbook.
ActiveSheet.Cells["B16:C17"].Validation.Add(GrapeCity.Spreadsheet.DataValidationType.TextLength,
GrapeCity.Spreadsheet.DataValidationErrorStyle.Stop, 
GrapeCity.Spreadsheet.DataValidationOperator.Equal, "5", "");
            
dvTextLength.ErrorTitle = "無効な製品コード";
dvTextLength.ErrorMessage = "有効な5桁の製品コードを入力してください。";
dvTextLength.ShowError = true;
dvTextLength.IgnoreBlank = true;
コードのコピー
'テキスト長検証
GcSpreadSheet.Workbook.ActiveSheet.Cells("A16").Text = "テキスト長検証"

Dim dvTextLength = GcSpreadSheet.Workbook.ActiveSheet.Cells("B16:C17").Validation.Add(GrapeCity.Spreadsheet.DataValidationType.TextLength,
    GrapeCity.Spreadsheet.DataValidationErrorStyle.[Stop],
    GrapeCity.Spreadsheet.DataValidationOperator.Equal, "5", "")

dvTextLength.ErrorTitle = "無効な製品コード"
dvTextLength.ErrorMessage = "有効な5桁の製品コードを入力してください。"
dvTextLength.ShowError = True
dvTextLength.IgnoreBlank = True

カスタム数式検証

本種類の検証は、セルやセル範囲に入力された値を数式により検証するカスタム検証ルールを追加します。DataValidationType列挙体のCustom値を使用してワークシートにカスタム数式検証を適用できます。

コードのコピー
//カスタム数式検証
GcSpreadSheet.Workbook.ActiveSheet.Cells["A19"].Text = "カスタム数式検証";
            
var dvCustomFormula = 
GcSpreadSheet.Workbook.ActiveSheet.Cells["B19"].
Validation.Add(GrapeCity.Spreadsheet.DataValidationType.Custom, 
GrapeCity.Spreadsheet.DataValidationErrorStyle.Stop, 
GrapeCity.Spreadsheet.DataValidationOperator.Equal, "=ISNUMBER(B19)", "");
            
dvCustomFormula.ShowError = true;
dvCustomFormula.IgnoreBlank = false;
dvCustomFormula.ErrorTitle = "無効なデータです。";
dvCustomFormula.ErrorMessage = "番号を入力してください。";
コードのコピー
'カスタム数式検証
GcSpreadSheet.Workbook.ActiveSheet.Cells("A19").Text = "カスタム数式検証"

Dim dvCustomFormula =
GcSpreadSheet.Workbook.ActiveSheet.Cells("B19").Validation.Add(GrapeCity.Spreadsheet.DataValidationType.Custom,
GrapeCity.Spreadsheet.DataValidationErrorStyle.[Stop],
GrapeCity.Spreadsheet.DataValidationOperator.Equal, "=ISNUMBER(B19)", "")

dvCustomFormula.ShowError = True
dvCustomFormula.IgnoreBlank = False
dvCustomFormula.ErrorTitle = "無効なデータです。"
dvCustomFormula.ErrorMessage = "番号を入力してください。"
関連トピック