Excelで入力規則を設定したあと、次のような場面はありませんか?
- プルダウンを解除したい
- 入力制限だけ削除したい
- 複数セルの入力規則をまとめて消したい
このような場合は、VBAで入力規則を削除すると簡単です。
手作業で「データ」→「データの入力規則」→「すべてクリア」とするよりも、マクロなら一瞬で終わります。
この記事では、入力規則を削除するVBAコードを初心者向けに分かりやすく解説します。
この記事でできること
- 指定セルの入力規則を削除できる
- 範囲全体の入力規則を一括削除できる
- シート全体の入力規則を削除できる
- エラーになりにくい安全な書き方が分かる
基本:入力規則を削除するコード
まずは一番基本のコードです。
A1セルの入力規則を削除します。
Option Explicit
Sub DeleteValidation_Basic()
Range("A1").Validation.Delete
MsgBox "A1セルの入力規則を削除しました。", vbInformation
End Sub
この Validation.Delete が、入力規則削除の基本です。
コードの意味を解説
Validationとは?
Validation は、セルに設定されている入力規則を表します。
たとえば次のような設定が対象です。
- プルダウンリスト
- 数値のみ入力可
- 日付のみ入力可
- 文字数制限
Deleteとは?
Delete を使うことで、そのセルの入力規則を削除できます。
複数セルの入力規則を一括削除する
A1:A10 の入力規則をまとめて削除したい場合はこちらです。
Option Explicit
Sub DeleteValidation_Range()
Range("A1:A10").Validation.Delete
MsgBox "A1:A10 の入力規則を削除しました。", vbInformation
End Sub
複数セルでも同じ書き方で対応できます。
シート全体の入力規則を削除する
シート全体の入力規則をすべて消したい場合は、次のように書きます。
Option Explicit
Sub DeleteValidation_AllSheet()
Cells.Validation.Delete
MsgBox "シート全体の入力規則を削除しました。", vbInformation
End Sub
ただし、この方法は本当に全部消えるので注意してください。
選択範囲だけ入力規則を削除する
ユーザーが選択した範囲だけ削除したい場合は、こちらが便利です。
Option Explicit
Sub DeleteValidation_Selection()
Selection.Validation.Delete
MsgBox "選択範囲の入力規則を削除しました。", vbInformation
End Sub
この方法なら、必要な部分だけ柔軟に対応できます。
入力規則がないセルでも安全に実行する方法
セルによっては、入力規則が設定されていないこともあります。
その場合、環境によってエラーになることがあるため、安全に処理するには次のように書くのがおすすめです。
Option Explicit
Sub DeleteValidation_Safe()
On Error Resume Next
Range("A1:A10").Validation.Delete
On Error GoTo 0
MsgBox "入力規則の削除処理が完了しました。", vbInformation
End Sub
この書き方なら、入力規則がないセルが混ざっていても止まりにくくなります。
実務でよくある使い方
① プルダウンを解除したい
入力規則で作ったプルダウンも、Validation.Delete で解除できます。
② 入力フォームをリセットしたい
一時的に入力制限を外したいときにも便利です。
③ テンプレートを複製したあとに制限を消したい
元ファイルの入力規則だけ不要な場合に活用できます。
応用①:特定列だけ入力規則を削除する
例えばB列だけ削除する場合はこちらです。
Option Explicit
Sub DeleteValidation_ColumnB()
Columns("B").Validation.Delete
MsgBox "B列の入力規則を削除しました。", vbInformation
End Sub
応用②:使用範囲だけ削除する
シート全体ではなく、データがある範囲だけを対象にしたい場合は次のようにします。
Option Explicit
Sub DeleteValidation_UsedRange()
ActiveSheet.UsedRange.Validation.Delete
MsgBox "使用範囲の入力規則を削除しました。", vbInformation
End Sub
よくあるエラーと対処法
① 入力規則がないセルでエラーになる
その場合は、On Error Resume Next を使った安全版を試してください。
② シート全体の設定を消してしまった
Cells.Validation.Delete はすべての入力規則を削除します。
必要な範囲だけ指定するようにしましょう。
③ コードは正しいのにエラーになる
Webからコピーしたコードでは、全角記号や見えない文字が混ざることがあります。
その場合は、エラーの出ている行を削除して手入力し直すと直ることがあります。
まとめ
- 入力規則の削除は
Validation.Deleteでできる - 1セル・範囲・シート全体に対応できる
- プルダウン解除にも使える
- 実務では安全版コードも覚えておくと便利
入力規則を削除するVBAは、Excelテンプレートの調整や入力フォームの管理でよく使う便利コードです。
一度覚えておくと、手作業で解除するよりかなり効率的になります。
ぜひ実務でも活用してみてください。

コメント