[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『空白と0以外のセルは入力禁止』(くば)
A1:B10(文字列に設定されている)に数字を入力する場合 入力セルが0か空白であればそのまま入力でき すでに数字が入力済みであれば、メッセージを出して入力を取り消す (但し数字が入力済みのセルであっても0は入力可能、数字消去も可能)
そういう方法があれば教えて下さい。
入力規則を使う案です。
データ → 入力規則 → 設定タブで入力値の種類を「整数」にし、 データを「次の値より小さい」にして最大値を「1」とします。 次に、エラーメッセージタブの、無効なデータが入力されたら エラーメッセージを表示する にチェックを入れ、スタイルを 「停止」にし、任意のエラーメッセージを入力して「OK」でどうでしょか。 (ちぃちゃん)
説明不足で申し訳ありません。 「1」より小さい数字のみを入力したい という事ではなく すでに入力済みか若しくは空白のセルに対して 入力済みのセルの値が1以上であれば「0」の入力 又は 消去以外操作不可 そのセルの値が「0」 又は 空白であればどんな数字も入力を許可する というような事です。
この表のセルは最初は空白か「0」が入力されており、 そこへ数字をどんどん入力していくのですが 誤って入力済のところに再度入力して上書きしてしまうミスを 何とかできないと思いまして。
入力規則は自分でも挑戦してみたのですが、できず 現在は Private Sub Worksheet_Change(ByVal Target As Range) If Intersect(Target, Range("a1:b10")) Is Nothing Then Exit Sub If Target.Count > 1 Then Exit Sub If Target.Value <= 0 Then Exit Sub Else Application.EnableEvents = False With Application .Undo End With Application.EnableEvents = True End If End Sub ↑に挑戦しているのですが 0又は空白のセルに1以上の数字を入力しても元に戻ってしまいます。 どう考えればいいのか、教えて頂きたくて質問致しました。
引き続きのご指導を頂けたら幸いです。 (くば)
入力済みのところを消すことはできるのですよね? であれば入力制限を設けても、いったん消してから入力したら何でも入力できてしまうの ではないですか。
いずれにせよ、イベントでは入力前の値を保持していませんので、どこか別の場所で現在の 入力値を管理する必要があります。
シート保護をかけておいて、入力済みにはロックをかけ、修正のためにはシート保護を外す ような仕組みで代替できないでしょうか。 (Mook)
Mookさんへ >いずれにせよ、イベントでは入力前の値を保持していません わかっていませんでした(恥)大変勉強になりました。
>シート保護をかけておいて、入力済みにはロックをかけ >修正のためにはシート保護を外す >ような仕組みで代替できないでしょうか。 仕切り直しが必要なようです。 ご教示有難うございました。 (くば)
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.