Excel VBA セルの入力規則を調べてリスト入力にする

ExcelのVBAでセルの入力規則を調べる方法と、入力規則が設定されていない場合はリスト入力にする方法の記録です。

下図は、Excel2016です。

< スポンサーリンク >





VBAで入力規則を調べる方法

セルの入力規則がどうなっているか調べるには、「Validation.Type」を使います。

 

下図は、A1の入力規則は「整数」、A2は「小数点数」、A3は「リスト」、A4は「日付」、A5は「時刻」、A6は「文字列(長さ指定)」、A7は「ユーザー設定」が設定してあります。

ExcelVBAリスト

 

「Validation.Type」を使ってB列に入力規則を表示してみます。

VBEに下記のように書きます。

Sub test()
    Dim i As Long

    With ActiveSheet
        For i = 1 To 7
            .Cells(i, 2).Value = .Cells(i, 1).Validation.Type
        Next i
    End With
End Sub

ExcelVBAリスト

 

VBAを実行すると「Validation.Type」の結果がB列に返されました。

ExcelVBAリスト

※「Validation.Type」は入力規則が設定されていない場合は、エラーが返されます。

 

VBAで入力規則を調べてリスト入力にする方法

エラーを利用して、入力規則が設定されていない場合は、リスト入力になるように設定してみます。

Sub test()
    On Error GoTo pulldownni

    Dim ValiType
    ValiType = ActiveCell.Validation.Type

    Exit Sub

‘エラーだったらプルダウンに
pulldownni:
    ActiveCell.Validation.Add Type:=xlValidateList, Formula1:=”○,×”
End Sub

ExcelVBAリスト

ExcelVBAリスト

 

< スポンサーリンク >※広告先のお問い合わせは広告主様にお願いします