- 締切済み
セルの書込み禁止
Excelでセル、または行・列の書き込みを禁止する事は出来ますか?
- みんなの回答 (12)
- 専門家の回答
みんなの回答
- imogasi
- ベストアンサー率27% (4737/17069)
>一度入力したセルは誤入力の恐れがあるので、書き込みを禁止したい。 2重打ち・上書きの防止のようなことだと思いますので、やりたい気持ちもわかります。 入力済みのセルは入力の都度増えていきます。したがって回答既出の操作では、入力を一休みするときに保護していくのも出来なくは無いが、現実的に 可能な方法ではない。そこでVBAの出番です。 ただVBAになれた方に対して以外はお勧めできませんが。下記はあくまでもヒントで、修正して使いやすくしないといけないので。 (1)A1:A8がブランクで値を入力したい。A9に値をいれておく。 Sub lock01() ActiveSheet.Unprotect Cells.Locked = True MsgBox ActiveSheet.UsedRange.Address ActiveSheet.UsedRange.SpecialCells( _ Type:=xlCellTypeBlanks).Locked = False ActiveSheet.Protect End Sub これでA9以下は入力ダメ、B列より右は入力ダメになります。 A1:A8は入力、訂正は何度でも可能です。 A1:A3に入力済みの段階で上記を実行するとA4からA8までブランク のセルのみ入力可能です。 (2)一度入力したセルを入力不可にする。 Private Sub Worksheet_Change(ByVal Target As Range) ActiveSheet.Unprotect r = Target.Row c = Target.Column ActiveSheet.Cells(r, c).Locked = True ActiveSheet.Protect End Sub
- taisuke555
- ベストアンサー率55% (132/236)
すいません。こちらに変えてください。 Private Sub Worksheet_Change(ByVal Target As Range) If (Target.Value <> "") Then ActiveSheet.Unprotect Target.Locked = True Target.FormulaHidden = False ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True End If End Sub 入力時に、何も入力されていなくてもロックが掛かってしまうので変更しました。 何度もすいません。
お礼
確認が遅れて申し訳ありませんでした。 回答ありがとうございました。
- taisuke555
- ベストアンサー率55% (132/236)
VBAで作ってみました。 間違えて入力してしまった時などの事は、何も書いていなかったので処理していません。 使い方が分からなければ、また質問してください。 (1)まず、シート全体のロックをはずす。(下記回答を見れば操作は分かると思います。) (2)シートを保護します。(今回は、パスワードは指定しない方法です。) (3)VBEditerでシートに下記を貼り付ける。 Private Sub Worksheet_Change(ByVal Target As Range) ActiveSheet.Unprotect Target.Locked = True Target.FormulaHidden = False ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True End Sub これで入力した場所は入力不可になります。 やっている事は、 (1)入力があった場合に (2)シートの保護を解除し (3)セルにロックをかけ (4)シートを保護する です。
お礼
確認が遅れて申し訳ありませんでした。 回答ありがとうございました。
- h_narunaru
- ベストアンサー率25% (47/183)
>Excelを使用していて、 >順々にセルを使用していきます。 >そこで、一度入力したセルは誤入力の恐れがあるので、 >書き込みを禁止したい。 それは、入力したつどに自動的に保護がかけれないかと言うことですか? それは、無理だと思います。 出来た表のこれから、入力する所意外の入力済みの所を保護したいのなら、私の方法か他の人の方法でOKだと思いますヨ
お礼
確認が遅れて申し訳ありませんでした。 回答ありがとうございました。
- imogasi
- ベストアンサー率27% (4737/17069)
ご回答は既に出ていますが、私はかって、常識と違う順序の操作で戸惑いました。下記が理解の一助になれば。 (原理) (1)・ワークシート保護+セルのロックで変更不可 ワークシート保護+セルのアンロックで変更可 なんです。 ・ワークシートはシート全体、ロックはセル単位なんです。 ・セル単位のロックをしただけでは、入力は不可にならない。 ワークシート保護がかかってはじめて、そのセルが変更不可になる。 (操作) (2)入力可のセル範囲を選択する。書式-セル-ロックのチェックを外す。 (3)ワークシートの保護を掛ける。 ・(3)を先にすると(2)の書式-セルのセルが指定できず、この操作が 出来ない。したがって(2)を先にしなければならない。
お礼
確認が遅れて申し訳ありませんでした。 回答ありがとうございました。
- h_narunaru
- ベストアンサー率25% (47/183)
taisuke555さんへ 気分は害していませんので、ご心配なく 私の書き方が悪かったんですネ 今度は、もっと分かりやすく書きます。 taisuke555さんのレスを見て、最近のバージョンからやり方が変わったのかと思いました。 私もここで、助けていただいていますので、分かる範囲内で応援したいと思っています。 ljr9527さんがんばってくださいネ 皆さん良い人ばかりですヨ
補足
皆さん、回答ありがとうございました。 もう一度この質問をした経緯を説明いたします。 Excelを使用していて、 順々にセルを使用していきます。 そこで、一度入力したセルは誤入力の恐れがあるので、 書き込みを禁止したい。 という事です。 そのような方法が設定できましたら、 教えてください。 宜しくお願いします。
- taisuke555
- ベストアンサー率55% (132/236)
h_narunaruさんへ 同じ事を言っていたようですね。失礼しました。 私の解釈が悪くて、入力禁止にしたい場所のロックをはずし・・・と解釈してしまいました。 気分を害されたら申し訳ありません。
- h_narunaru
- ベストアンサー率25% (47/183)
#1での回答をした物です。 変ですネ 私はこれで保護していますヨ ロックのチェックをはずした所は入力は出来ますが、それ以外は保護されます。 保護をかけると書式設定は出来なくなるので、保護をはずしてからする必要がありますヨ 一度試してください。
- taisuke555
- ベストアンサー率55% (132/236)
書き方が悪かったですね。 #3の方のおっしゃるように、シートの保護をかける前に 入力可能にしたいセルのロックをはずしてください。
- hanabisi73
- ベストアンサー率20% (7/34)
こんにちわ(^-^) 書き込み禁止(シートの保護)をしたセルは編集は出来ません。 もし編集したい場合はシートの保護を解除(「ツール」→「保護」→「シートの保護の解除」)を実行してください。 もし、変更しても一向に構わないセルであれば#2さんが後半で述べられているとおりそのセルだけ保護をかけない方法が良いと思います。
- 1
- 2
お礼
確認が遅れて申し訳ありませんでした。 回答ありがとうございました。