← コード一覧へ戻る
実務入力規則

入力規則が設定されていないセルを操作する

A1:C10で入力規則が設定されていないセルだけに背景色を付けます。

実行前に確認

  • 規則なしのセルを調べる行だけでエラーを扱います。入力規則の設定や削除はしませんが、通常の背景色は変更します。

1サンプルコード

Sub Example1170()
    Dim ws As Worksheet
    Dim c As Range
    Dim t As Long
    Dim hasRule As Boolean
    Set ws = ThisWorkbook.Worksheets("Sheet1")
    For Each c In ws.Range("A1:C10").Cells
        On Error Resume Next
        Err.Clear
        t = c.Validation.Type
        hasRule = (Err.Number = 0)
        Err.Clear
        On Error GoTo 0
        If Not hasRule Then c.Interior.Color = RGB(255, 240, 200)
    Next c
End Sub

図で見る操作の流れ

イメージ図

コードの動きを表した概念図です。実際のExcel画面ではありません。

  1. 対象:Sheet1!A1:C10

    各セルを1つずつ調べる

  2. マクロ:入力規則を確認

    Validation.Typeを取得できるか判定する

  3. 規則なしの場合

    背景を淡い黄色 RGB(255,240,200) にする

  4. 次のセルへ

    規則があれば背景は変えず、全セルまで繰り返す

入力規則自体は設定・削除しません。規則なしと判定したセルの元の背景色は上書きします。

コードの処理を説明する模式図です。実際の画面や実行結果を撮影したものではありません。

使い方・実行手順を確認する4つの手順で、コードの使い方を確認できます
  1. 1

    練習用のブックを.xlsm形式で保存し、Sheet1という名前のシートを用意します。A1:C10の一部へ[データ]→[データの入力規則]でリストなどを設定します。

  2. 2

    Alt+F11でVBEを開き、[挿入]→[標準モジュール]へコードを貼り付けます。

  3. 3

    A1:C10が確認範囲です。規則がないセルではType取得時のエラーを使って判定します。

  4. 4

    マクロ内にカーソルを置いてF5で実行します。規則がないセルだけ淡い黄色になります。

使っている機能の公式ドキュメント(Microsoft Learn)