『データ入力の関係で困っています。毎回、1000件程度の入力を行うのですが、すでに入力済みのセルに誤って違うデータを入力してしまい、データが置き換わってしまいます。修正がかからないようにする、もしくは、データ入力の際に警告メッセージ等が出るような方法はないでしょうか。Excel2000』(のりのり) ---- エクセルの標準機能でできるのかどうか、当方エクセル音痴なのでわからないけど、 もし、できるとして、でも、入力ミスもあるわけで、いったん入力したら訂正できないというのは あとあと、困ることも多くなるような気がするけど? VBAでやるとすれば 1.シートモジュールのChangeイベントで、Applicatio.Undoで入力前の状態を把握して、もし、空白じゃなかったらエラーメッセージで抜け。   空白だったら、あらためて入力後の値をセルにいれる。   (この場合、Application.EnableEventsのFalse/Trueを記述してイベントの連鎖を抑止) 2.一定の入力後、値のあるセルを保護セルにしてシート保護する処理を操作者がキック。 3.あるいは、シートモジュールのChangeイベントで、値があれば、そこを保護セルに。   (シートは保護されているという前提。必要ならコード内で UserInterfaceOnly:=True 指定のシートProtectを。) (ぶらっと) ---- エキスパートさん達から標準機能による解決策の提示があるまでの「つなぎ」として、上記1.をもう少し親切(?)にしたものを。 空白セル以外に入力があった場合は、その旨メッセージをだし、強制的に入力するのか、 うっかりミスなので元に戻すかを操作者に選ばせる。 シートモジュール(シートタブを右クリックしてでてくるところ)に以下を貼り付け。 Private Sub Worksheet_Change(ByVal Target As Range) Dim c As Range Dim NG As Boolean Application.ScreenUpdating = False Application.EnableEvents = False Application.Undo For Each c In Target If Len(c.Value) > 0 Then If MsgBox("入力されたセルにはすでに値が入っていました。よろしいのですか?", vbYesNo) = vbNo Then MsgBox "入力前の状態に戻します" NG = True Exit For End If End If Next If Not NG Then Application.CommandBars.FindControID:=129).Execute 'Redo End If Application.EnableEvents = True Application.ScreenUpdating = True End Sub (ぶらっと) ---- 作業列を使っての入力規則を使う例ですが余り自信がありませんもっと他の方法がありそうですが?分かりません 例 A1に入力しようとするセル、B1に作業列として、B1に =TEXT(A1,A1) A1を選択し、入力規則を設定 入力値の種類をユーザー設定 数式 =B1=TEXT("","G/標準") A1に入力し、確定した場合一度消さないと再入力できないとなってしいますけど VBAのぶらっとさんの方が良いと思います。 (貼)VBAもさっぱり分かりませんけど