【ExcelVBA・マクロ】入力規則を削除する方法|プルダウンや制限を一括解除するコード【コピペOK】

入力規則を削除する方法 ExcelVBA

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テンプレートの調整や入力フォームの管理でよく使う便利コードです。
一度覚えておくと、手作業で解除するよりかなり効率的になります。
ぜひ実務でも活用してみてください。

スポンサーリンク
スポンサーリンク
ExcelVBA
いがぴをフォローする

コメント

タイトルとURLをコピーしました