Home » エクセルマクロ・Excel VBAの使い方 » 入力規則 » 入力規則が設定されているかを調べるExcelマクロ

入力規則が設定されているかを調べるExcelマクロ

対象:Excel2007, Excel2010, Excel2013, Windows版Excel2016

条件付き書式が設定されているかどうかを調べるExcelマクロをご紹介しました。

似たような件で、入力規則が設定されているかどうかを調べたい、という要望もあるようです。

入力規則が設定されているかを調べるExcelマクロ

このサイト・インストラクターのネタ帳のアクセスログでも、
「excelvba 入力規則 設定有無」
「excel vba 入力規則設定の有無」
といった検索キーワードが見られます。

[スポンサード リンク]

入力規則が設定されているかどうかをサンプルマクロ

以下のようなSubプロシージャで、アクティブなワークシートに入力規則が設定されているかどうかを調べられます。


Sub 入力規則が設定されているかどうかを調べる()
 Dim rng As Range

 On Error Resume Next
 Set rng = Cells.SpecialCells(xlCellTypeAllValidation)
 On Error GoTo 0

 If rng Is Nothing Then
  MsgBox "入力規則は設定されていません。"
 Else
  MsgBox "入力規則が設定されています。"
 End If
End Sub

サンプルマクロの解説

[選択オプション]ダイアログで[データの入力規則]-[すべて]オプションを選択すると、

入力規則が設定されているかを調べるExcelマクロ

入力規則の設定されているセルだけを選択できます。

この操作をマクロ記録すると、
  ActiveCell.SpecialCells(xlCellTypeAllValidation).Select
というコードができます。
このコードを流用して作ったのが上記のSubプロシージャです。

Range.SpecitalCellsメソッドの引数に、

入力規則が設定されているかを調べるExcelマクロ

定数・xlCellTypeAllValidationを指定することで、

入力規則が設定されているかを調べるExcelマクロ

入力規則の設定されているセルを取得して、オブジェクト変数・rngにセットするようにしています。
  Set rng = Cells.SpecialCells(xlCellTypeAllValidation)

入力規則の設定されているセルがなかったときには、
  Set rng = Cells.SpecialCells(xlCellTypeAllValidation)
で実行時エラーが発生しまいますから、事前に
  On Error Resume Next
としています。

オブジェクト変数・rngにセットする、
  Set rng = Cells.SpecialCells(xlCellTypeAllValidation)
が実行されたあと、オブジェクト変数の初期値・Nothingのままなら、入力規則が設定されているセルは存在しないと判断できます。
 If rng Is Nothing Then
  MsgBox "入力規則は設定されていません。"

関連語句
Visual Basic for Applications
▼2017年6月10日にオブジェクトブラウザーの使い方とともに、VBAのオブジェクト式の文法・オブジェクト変数等についてとことん解説するセミナー『Excel VBA講座 オブジェクト式解説編』を開催します。
オブジェクト式解説編

Home » エクセルマクロ・Excel VBAの使い方 » 入力規則 » 入力規則が設定されているかを調べるExcelマクロ

[スポンサード リンク]
[スポンサード リンク]

TrackBack:0

TrackBack URL

Home » エクセルマクロ・Excel VBAの使い方 » 入力規則 » 入力規則が設定されているかを調べるExcelマクロ

「入力規則」の記事一覧

検索

最近じっくりと読まれている記事

.