Microsoft Excel VBA - シートの入力チェックを行う方法

◆概要

このページは、Excel VBAを利用してシートの入力チェックを行う方法について記載しています。

 ユーザーにデータを入力させる場合で、入力漏れや誤った数値が入力されることを防ぐ一つの方法として、入力された後にマクロで入力データをチェックすることが考えられます。ここでは、チェックを行って入力漏れや入力数値が誤って入る場合に、セルの背景色を特定の色に設定し、ユーザーに再入力を促す方法を説明します。

◆Sample

 次の例では、セルA1に1以上100以下の数値が入力されて入るかをチェックし、入力されていればセルの背景色を水色に設定します。そうでないときは、セルの背景色を赤色に設定します。

Sub ErrorCheck1()

' セルA1の入力データをチェックする。
' A1に1以上100以下の数値が入力されているとき
If Not (Range("A1") >= 1 And Range("A1") <= 100) Then
   Range("A1").Interior.ColorIndex = 3  ' セルの背景を水色にする
' 未入力か上記以外の数値が入力されて入るとき
Else: Range("A1").Interior.ColorIndex = 20  ' セルの背景を赤にする
End If
End Sub

◆複数のセルをチェックする

 複数のセルをチェックするには、 For Each構文を利用して次のようにします。

Sub ErrorCheck2()
    For Each ce In Range("C8:C12,D15:D17,E20:G20,E22:G22,E30:G30,E33:G33")
        ' 0以外の数値が入力されているとき
        If (ce.Value = "" Or IsNumeric(ce.Value) = False Or ce.Value = 0) Then
            ce.Interior.ColorIndex = 3  ' セルの背景色を水色にする
        ' それ以外
        Else
            ce.Interior.ColorIndex = 20 ' セルの背景を赤にする
        End If
    Next ce
    
    For Each ce In Range("e15:e17,e21:e26,e32:g46,e48:g60,e62:f62,g63:g64")
        If (ce.Value = "" Or (IsNumeric(ce.Value) = False)) Then
            ce.Interior.ColorIndex = 7  ' セルの背景色を紫色にする
        Else
            ce.Interior.ColorIndex = 20 ' セルの背景色を赤色にする
        End If
    Next ce
    
    ' メッセージでユーザーに入力誤りを知らせる
    MsgBox "次の色のセルがある場合は、入力漏れ(誤り)があります。" & Chr(13) & _
        "次のものを入力してください。" & Chr(13) & "" & Chr(13) & _
        " 赤 : 0(ゼロ)以外の数値 (適切な数値)" & Chr(13) & "" & Chr(13) & _
        " 紫 : 数値 (0(ゼロ)を含む)"
End Sub


▼ページトップへ