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
▼ページトップへ