• 締切済み

エクセル マクロを用いたチェックツール

マクロにあまり詳しくないので教えていただいたいのですが、 例えば セル「A1」に、「X」「Y」「Z」以外の値又は数式が入っている時に エラーメッセージを表示し、且つ赤く色を付けたりする事は出来ますのでしょうか?

みんなの回答

noname#217196
noname#217196
回答No.2

数式かどうかの判定には、ワークシート関数が用意されていないので、ユーザー定義関数を作成しなくてはなりません。 あとは、比較的簡単な方法として二通りのやり方があります。 1つは、オートフィルタ機能を利用して、特定エラー条件に適合するデータ行だけ抽出。検索条件をワークシートに記述することで、複数の条件を組み合わせて指定できます。フィルタで抽出されるので、わざわざ色をつける必要は低いと思いますが、必要なら抽出結果に対し、セルの色を手作業で変更するなり、エラー列を追加してエラー列のセル値をたとえば1と書き込む等で条件付き書式を利用するといいでしょう。 もう1つは、エラーチェック列を追加し、そこにエラー判定の数式を記述。データ列に条件付き書式を設定し、エラーチェック列のセルにエラーが書き込まれていたら、データ列のセルの色を変更。特定文字列を含むかどうかの判定にはFINDではなくCOUNTIFを使うほうがよいでしょう。FINDの場合、指定文字列を含まない場合、エラーになってしまいます。

参考URL:
http://www.relief.jp/itnote/archives/001232.php
  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.1

該当するシート見出しを右クリックして「コードの表示」を選択します。 表示の画面の右側には次のマクロを入力します。 Private Sub Worksheet_Change(ByVal Target As Range) On Error Resume Next If InStr("X", Range("A1")) + InStr("Y", Range("A1")) + InStr("Y", Range("A1")) = 0 Or Range("A1").HasFormula = True Then Range("A1").Interior.ColorIndex = 3 MsgBox "A1セルには適当な値が入力されていないかまたは数式が入力されています。" End If End Sub

関連するQ&A

専門家に質問してみよう