Excelには、セルで発生する可能性のあるエラーに対するアラート機能があります。このアラートは、セルの左上隅に緑色の三角形として表示されます。これは、場合によっては役立ちますが、他の場合には本当に面倒です。たとえば、Peterはワークシートに住所のリストを持っています。 1つの列に、テキストとしてフォーマットされた郵便番号があります。 Excelは、この列のすべてのセルがテキストとしてフォーマットされた数値であることを常に彼に伝えています。これは、(彼の場合)意図的なものです。 Peterは、その列だけでその特定のアラートを抑制する方法があるかどうか疑問に思います。彼は列を選択して[エラーを無視]をクリックしようとしましたが、それは一時的にしか機能しません。彼がセルを編集するとアラートが返され、ワー​​クブックを閉じて再度開くとアラートが返されます。

Excelでは、フラグを立てるエラーと無視するエラーを調整できます。

次の手順に従ってください:

。 [Excelのオプション]ダイアログボックスを表示します。 (Excel 2007では、[Office]ボタンをクリックし、[Excelオプション]をクリックします。Excel2010以降のバージョンでは、リボンの[ファイル]タブが表示され、[オプション]をクリックします。)

。ダイアログボックスの左側にある[数式]をクリックします。 (図1を参照)

。ダイアログボックスの下部にある[テキストとしてフォーマットされた数値またはアポストロフィが前に付いた数値]チェックボックスをオフにします。

。 [OK]をクリックします。

これで、プログラムを使用しているときに、Excelはこれらのタイプの潜在的なエラーをマークしません。必要に応じて、マクロを使用してこのプロセスを処理できます。これにより、ワークシートの使用中にこのエラーチェックをオフにすることができますが、別のワークシートに移動する場合はオンに戻すことができます。

これを行うには、Worksheet_ActivateおよびWorksheet_Deactivateイベントハンドラーを次のように使用します。

Private Sub Worksheet_Activate()

Application.ErrorCheckingOptions.NumberAsText = False End Sub
Private Sub Worksheet_Deactivate()

Application.ErrorCheckingOptions.NumberAsText = True End Sub

ワークシートタブを右クリックし、表示されるコンテキストメニューから[コード]オプションを選択すると、これらのイベントハンドラーが入力されるコードウィンドウに移動できます。

もちろん、Peterは、エラーが1つの列でのみ抑制されるように要求しました。これは少しトリッキーになりますが、それでも実行できます。残念ながら、VBAではセルごとにエラーチェックオプションを設定することしかできません。つまり、列全体の設定を変更することはできなくなります。特定の列のセルの範囲に対してこれを実行する場合は、次の方法で実行できます。

Private Sub Workbook_Open()

Dim c As Range

For Each c In Worksheets("Retail Figures").Range("A1:A100")

c.Errors(xlNumberAsText).Ignore = True     Next End Sub

これは、ThisWorkbookオブジェクトのコードウィンドウに配置されるWorkbook_Openイベントハンドラーであることに注意してください。ワークブックを開いたときに実行され、小売数値ワークシートのA1:A100範囲のエラーチェックを設定します。明らかに、影響を与えたいセルを参照するように範囲を変更する必要があります。

_ExcelTips_は、費用効果の高いMicrosoftExcelトレーニングのソースです。

このヒント(5229)は、Microsoft Excel 2007、2010、2013、2016、2019、およびOffice365のExcelに適用されます。