【VBA】入力規則を設定して、指定した文字数のみ入力できるようにする

VBAで
 ・入力規則を設定して
 ・指定した文字数のみ入力可
にできます!

入力できる値を制限することで、
誤入力を防止できます!

ここでは例として、
 ・5文字のみ
 ・5文字以下のみ
 ・5文字未満のみ
を入力可にする方法を記載します!

PR

5文字のみ入力可にする

ここでは例として、
 ・シート「sample」のセルC列「部署名」に対し、
 ・5文字のみ入力できるように
します。

入力規則が設定するセル
入力規則が設定するセル
Option Explicit

Sub sample()

    With Worksheets("sample").Range("C3:C5").Validation
        '既存の設定をクリア
        .Delete
        '5文字のみ入力可にする
        .Add Type:=xlValidateTextLength, _
                Operator:=xlEqual, _
                Formula1:="5", _
                AlertStyle:=xlValidAlertStop
        'エラータイトル
        .ErrorTitle = "入力エラー"
        'エラーメッセージ
        .ErrorMessage = "5文字のみ入力してください。"
    End With
    
End Sub

「Range(“XXX”).Validation.Add」により、入力規則を設定できます(5、9行目)。

「Type」に「xlValidateTextLength」を指定することで、文字数の制限を設定できます(9行目)。

「Operator」に「xlEqual」を指定することで、「〇文字のみ入力可」にできます(10行目)。

「Formula1」に制限したい文字数を指定します(11行目)。
※上記では「5」を指定しています。

「ErrorTitle」に「エラーメッセージ画面のタイトル」を指定します(14行目)。

「ErrorMessage」に「エラーメッセージ」を指定します(16行目)。


シート「sample」のセルC列「部署名」に5文字以外の入力を試みると、エラーとなり入力不可であることが確認できます。

入力規則が設定されていることを確認
入力規則が設定されていることを確認
PR

5文字以下のみ入力可にする

ここでは例として、
 ・シート「sample」のセルC列「部署名」に対し、
 ・5文字以下のみ入力できるように
します。

Option Explicit

Sub sample()

    With Worksheets("sample").Range("C3:C5").Validation
        '既存の設定をクリア
        .Delete
        '5文字以下のみ入力可にする
        .Add Type:=xlValidateTextLength, _
                Operator:=xlLessEqual, _
                Formula1:="5", _
                AlertStyle:=xlValidAlertStop
        'エラータイトル
        .ErrorTitle = "入力エラー"
        'エラーメッセージ
        .ErrorMessage = "5文字以下で入力してください。"
    End With
    
End Sub

「Operator」に「xlLessEqual」を指定することで、「〇文字以下のみ入力可」にできます(10行目)。


シート「sample」のセルC列「部署名」に6文字以上の入力を試みると、エラーとなり入力不可であることが確認できます。

入力規則が設定されていることを確認
入力規則が設定されていることを確認
PR

5文字未満のみ入力可にする

ここでは例として、
 ・シート「sample」のセルC列「部署名」に対し、
 ・5文字未満のみ入力できるように
します。

Option Explicit

Sub sample()

    With Worksheets("sample").Range("C3:C5").Validation
        '既存の設定をクリア
        .Delete
        '5文字未満のみ入力可にする
        .Add Type:=xlValidateTextLength, _
                Operator:=xlLess, _
                Formula1:="5", _
                AlertStyle:=xlValidAlertStop
        'エラータイトル
        .ErrorTitle = "入力エラー"
        'エラーメッセージ
        .ErrorMessage = "5文字未満で入力してください。"
    End With
    
End Sub

「Operator」に「xlLess」を指定することで、「〇文字未満のみ入力可」にできます(10行目)。


シート「sample」のセルC列「部署名」に5文字以上の入力を試みると、エラーとなり入力不可であることが確認できます。

入力規則が設定されていることを確認
入力規則が設定されていることを確認
PR

まとめ

「Operator」に設定する値をまとめます。

まとめ

「Operator」に指定する値により、
 ・〇文字のみ (xlEqual)
 ・〇文字以下 (xlLessEqual)
 ・〇文字未満 (xlLess)
に制限できます。

PR

参考①

指定した間隔の数値のみ入力できるようにもできます。

詳細は以下の記事をご確認ください。

PR

参考②

日付のみ入力できるようにもできます。

詳細は以下の記事をご確認ください。