アクセスログを眺めていて
「excel vba 入力規則 日付 条件なし」
という検索キーワードに気づきました。
Excel VBA(Visual Basic for Applications)から、データの入力規則を設定して、日付だけ入力できるようにするケースで、
期間などの条件を指定したくないということでしょう。
日付だけ入力できる入力規則を設定するExcelマクロ
VBAのスキルというよりも、Excelのそもそもの仕様を知っているかどうかという問題です。
以下のSubプロシージャを実行すると、アクティブシートのA1:A5セルに、日付だけを入力できる入力規則を設定できます。With Range("A1:A5").Validation
.Delete
.Add _
Type:=xlValidateDate, _
Operator:=xlGreaterEqual, _
Formula1:="1900/1/1"
.ErrorMessage = "日付を入力してください!"
End With
End Sub
サンプルマクロの解説
そもそもExcelのセルに入力できるもっとも昔の日付は、1900年1月1日です。
このExcel本来の仕様を条件として設定すれば、
「excel vba 入力規則 日付 条件なし」
という状態になります。
入力規則を設定する操作をマクロ記録すると、以下のようなコードが作られます。
Sub 入力規則を設定する操作をマクロ記録()
With Selection.Validation
.Delete
.Add Type:=xlValidateDate, AlertStyle:=xlValidAlertStop, Operator:= _
xlGreaterEqual, Formula1:="1/1/1900"
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = "日付を入力してください!"
.IMEMode = xlIMEModeNoControl
.ShowInput = True
.ShowError = True
End With
End Sub
このコードを整理して最低限の状態にしたのが、先のSubプロシージャです。
Home » Excel VBA Rangeオブジェクト » 入力規則・Validation » VBAで日付のみ入力できる入力規則を設定する