サイトアイコン Amelt.net

ExcelVBA:ダイアログにて入力データ形式のチェックをするサンプルコード

This post is also available in: English-US (英語)

ExcelVBAでダイアログを表示して、ユーザー入力値を指定の形式/条件で入力されているかチェックするサンプルコードです。
以下のコードでは、IsDate() 関数を使って、日付の形式で入力がされているかどうかチェックしています。

Loop Until IsDate(UserInput)

また IsDate() の他にも、IsNull(),IsNumeric() などの標準の関数もありますが、以下のような式でTrue/Falseの判定を行うことも可能です。

Loop Until x=100

以下はExcelVBAにて、ダイアログを表示した上で、ユーザーに入力をしてもらい、その入力値が日付形式で入力されているかチェックし、A1セルに入力された値を表示するサンプルコードです。

Sub Sample()
    Dim UserInput As String
    '日付形式で入力されるまでループ
    Do
        UserInput = InputBox("日付を入力してください!")
    Loop Until IsDate(UserInput)
    '入力された値の簡易チェック
    If UserInput <> "" Then
        Range("A1").Value = UserInput
    End If
End Sub