Excel VBA セルの入力規則がリストじゃなかったらリスト入力できるようにする

ExcelのVBAでセルの入力規則がリストになっているかどうかを調べて、リストじゃなかったらリスト入力できるようにする方法の記録です。

下図は、Excel2016です。

ExcelVBAリスト

 

< スポンサーリンク >

 

方法

セルの入力規則がどうなっているか調べるには、「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リスト

 

「Validation.Type」の結果がB列に返されました。

ExcelVBAリスト

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

 

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

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リスト

 

< スポンサーリンク >



サブコンテンツ

このページの先頭へ