VBA|InputBoxで入力制限をして日付だけ入力できるようにする方法

エクセルVBA VBAでワークシートの操作



InputBoxで日付を入力する際に、日付だけ入力できるように入力制限をかけたいときがあります。

その場合はどのようにすればよいのでしょうか。

今回はInputBoxで入力制限をして日付入力だけできる方法を説明します。



InputBoxで入力制限をして日付だけ入力できるようにする方法

InputBoxで入力制限をして日付だけ入力できるようにしたサンプルコード

InputBoxで日付入力だけできるようにしたサンプルコードは以下のとおりです。

Sub 日付入力()
    Dim hensu As Variant
label:
    hensu = Application.InputBox(prompt:="日付を入力してください", _
                                Title:="日付入力", _
                                Default:="2019/02/28")
    If Not IsDate(hensu) Then
        MsgBox "日付の入力が間違っています。" & vbCrLf & "2019/02/28のように入力してください。"
        GoTo label:
    End If
    MsgBox hensu
End Sub

「 IsDate 」を使って、日付が入力されているかをチェックしています。

もし日付入力されていなければ、「Goto label:」で、InputBoxの前に戻り、適正に日付入力がされるまで繰り返します。

実行結果は以下のとおりです。

InputBoxの入力欄には、規定値に日付入力例が書いてあります。

InputBox

日付が入力されていないと、間違っているとのメッセージが出て、再度入力を求められます。

日付入力がされていないときのメッセージ

適正に日付が入力されるとメッセージボックスで入力した日付が表示されます。

適正に日付が入力されたときのメッセージ

InputBox自体で入力を制限するというよりも、適正な値が入力されているかIfステートメントで判断するという記述方法になります。

このようにInputBoxの入力結果をIfステートメントで判断するという手法は多く用いられるのでぜひ参考にしてくださいね。

InputBoxについてもっと知りたい方は、以下の記事も読んでくださいね。

Excel VBA入門 その36:InputBoxのキャンセルボタンを消す方法

コメント

  1. […] […]

  2. […] […]

タイトルとURLをコピーしました