ここでは、以下の図のように、セルに数値を文字列形式で入力した場合に表示される「エラーチェックマーク」を一括で削除する方法について説明します。
この「エラーチェックマーク」は「ファイル」タブの「オプション」の「数式」の「エラーチェックルール」の「文字列形式の数値、またはアポストロフィで始まる数値」のチェックボックスのチェックを外すことで「エラーチェックマーク」を非表示にすることもできます。
VBAで「エラーチェックマーク」を操作するには、セルを表すRange【レンジ】オブジェクトのErrors【エラーズ】プロパティでセルのエラーチェックの集まりを表すErrors【エラーズ】オブジェクトを取得し、そのItem【アイテム】プロパティで特定のエラーを表すError【エラー】オブジェクトを取得して、その「エラーチェックオプション」の設定を操作するIgnore【イグノア】プロパティを操作します。
Errors【エラーズ】プロパティ
セルのエラーチェックの集まりを表すErrors【エラーズ】オブジェクトを取得するには、Range【レンジ】オブジェクトのErrors【エラーズ】プロパティを使用します。
Errors【エラーズ】プロパティの書式と設定値の説明
【戻り値】Errors【エラーズ】オブジェクト
- オブジェクト(必須)
エラーになっている単体のセルをRange【レンジ】オブジェクトで指定します。セル範囲を指定するとエラーになります。
Item【アイテム】プロパティ
セルのエラーチェックの単体を表すError【エラー】オブジェクトを取得するには、Errors【エラーズ】オブジェクトのItem【アイテム】プロパティを使用します。
Item【アイテム】プロパティの書式と設定値(引数)の説明
【戻り値】Error【エラー】オブジェクト
- オブジェクト(必須)
Range【レンジ】オブジェクトのErrors【エラーズ】プロパティで取得したErrors【エラーズ】オブジェクトを指定します。 - Index【インデックス】(必須)
参照するエラーチェックを以下の定数を使用して設定します。定数 内容 xlEvaluateToError エラー結果となる数式を含むセル xlTextDate 2桁の年が含まれるセル xlNumberAsText 文字列形式の数値、またはアポストロフィで
始まる数値を含むセルxlInconsistentFormula 領域内の他の数式と矛盾する数式のセル xlOmittedCells 領域内のセルを除いた数式のセル xlUnlockedFormulaCells 数式を含むロックされていないセル xlEmptyCellReferences 空白セルを参照する数式
Ignore【イグノア】プロパティ
セルの「エラーチェックオプション」の設定や状態の取得をするには、単体の「エラーチェックオプション」を表すError【エラー】オブジェクトのIgnore【イグノア】プロパティを使用します。
Ignore【イグノア】プロパティの書式と設定値
- オブジェクト(必須)
Item【アイテム】プロパティで取得したError【エラー】オブジェクトを指定します。 - 設定値(必須)
「エラーチェックオプション」の状態をブール型の値で指定します。設定値 内容 False 有効 True 無効
セルに文字列形式の数値が入力されている場合の「エラーチェックオプション」を無効にするコードと解説
Sub エラーチェック無効() Dim セル As Range For Each セル In ActiveSheet.UsedRange If セル.Errors.Item(xlNumberAsText).Ignore = False Then セル.Errors.Item(xlNumberAsText).Ignore = True End If Next End Sub
3行目のFor Each【フォーイーチ】ステートメントで使用するコレクションから1つのオブジェクトを取り出して格納する変数「セル」をオブジェクト型(Range)で宣言します。
3行目【For Each セル In ActiveSheet.UsedRange】
For Each【フォーイーチ】ステートメントで使用を使用して繰り返し処理の始まりです。コレクションにはWorksheet【ワークシート】オブジェクトのUsedRange【ユーズドレンジ】プロパティを設定して、すべての使用されているセルを参照して、そのセルを一つずつオブジェクト変数「セル」に格納し、使用されているセルの数分繰り返します。
4行目【If セル.Errors.Item(xlNumberAsText).Ignore = False Then】
If【イフ】ステートメントを使用して条件式にErrors【エラーズ】オブジェクトのItem【アイテム】プロパティで参照した「文字列形式の数値のセル」の「エラーチェックオプション」の状態を確認するIgnore【イグアナ】プロパティがFalseのとき、つまり「エラーチェックオプション」が設定されているときを定義します。
5行目【セル.Errors.Item(xlNumberAsText).Ignore = True】
4行目の条件分岐が成立したとき、つまり「文字列形式の数値のセル」に「エラーチェックオプション」が設定されているとき
Range【レンジ】オブジェクトのErrors【エラーズ】プロパティで取得したErrors【エラーズ】オブジェクトのItem【アイテム】プロパティで参照した「文字列形式の数値のセル」のIgnore 【イグノア】プロパティにTrueを設定して、その「エラーチェックオプション」を解除します。
7行目【Next】
ここまでの処理を使用されているセルの数分繰り返します。
実行結果
以上で、セルのエラーチェックマークを削除する方法についての解説を終了します。ありがとうございました。