入力規則:1~5 の小数点数のみ許容
ws.Cell(1, 1).DataValidation.Decimal.Between(1, 5)
入力規則:整数 2 のみ許容、エラーメッセージ付き
Dim dv = ws.Range("A2:A3").SetDataValidation dv.WholeNumber.EqualTo(2) dv.ErrorStyle = XLErrorStyle.Warning dv.ErrorTitle = "範囲外の数値" dv.ErrorMessage = "このセルに入力できるのは 2 だけです。"
注意
元記事では var dv1 = ws.Range(“A2:A3”).DataValidation; と書かれているのですが、実際に試してみると .Range に .DataValidation プロパティは存在せずエラーになりました(2019/07/07)。
いろいろ試してみたら(上記コードの通り).SetDataValidation メソッドを使うことで期待通りの結果を得られたのですが、これが正しいやり方なのか保証はできません。
by エレン・イースト(当サイトの管理人)
入力規則:西暦2000年以降の日付のみ許容、入力時メッセージ付き
Dim dv = ws.Cell("A4").DataValidation dv.Date.EqualOrGreaterThan(New DateTime(2000, 1, 1)) dv.InputTitle = "1999年は盛り上がりましたが" dv.InputMessage = "今世紀の日付を入力してください。"
入力規則:リストから選択(範囲からリストを取得)
ws.Cell("C1").Value = "Yes" ws.Cell("C2").Value = "No" ws.Cell("A5").DataValidation.List(ws.Range("C1:C2"))
入力規則:リストから選択(コードからリストを取得)
'この形式で指定します:"オプション1,オプション2,オプション3" Dim options = New List(Of String)({"オプション1","オプション2","オプション3"}) Dim validOptions = $"""{String.Join(",", options)}""" ws.Cell(1,1).DataValidation.List(validOptions, True)
MEMO
念のためメモしておきますが、上記コード中の $ は補完文字列 (string interpolation) の機能を提供しています。
Console.WriteLine($”Today is {Now.DayOfWeek}.”)
‘ –> Today is Sunday.
Console.WriteLine($”It’s {Now:HH:mm} now.”)
‘ –> It’s 08:44 now.