- ベストアンサー
入力したセルを自動的に変更不可にしたい
Excelで、集計表を作成してます。1月~12月まで、毎月数値を入力すれば自動で演算・グラフ作成するようにしたのですが、私以外のExcel初心者の方も入力することがあるので、既に集計が済んでいる月の数値を過ってでも変更・消去等されてしまうと、少々困るのです。 そこで、1月から入力していく際に、一度入力したセルを変更・消去を自動で不可能にすることは可能でしょうか?《シートの保護》で毎月入力後に規制をかけるしかないのでしょうか?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
VBAで可能です。 予め入力したいセルのロックを外してからシートの保護をします。 シートモジュールのイベントで出来ますが、入力後の修正を行うが面倒になります。 Private Sub Worksheet_Change(ByVal Target As Range) ActiveSheet.Unprotect Target.Locked = True ActiveSheet.Protect End Sub
その他の回答 (2)
- Masa2072
- ベストアンサー率51% (94/182)
ブックを開く際に該当月のシートのみ保護を解除し、閉じる際に全てのシートに保護を書けるというのが現実的だと思います。 Private Sub Workbook_BeforeClose(Cancel As Boolean) Dim Sh As Object For Each Sh In ThisWorkbook.Sheets If Not Sh.Protect Then Sh.Protect True End If Next End Sub Private Sub Workbook_Open() Sheets(StrConv(Month(Now), vbWide) & "月").Unprotect End Sub
お礼
遅くなりましたが、回答ありがとうございました。 大変参考になりました。 なんとか無事に解決することが出来ました。
- tacacazu
- ベストアンサー率25% (125/495)
自動的にっていうのは無理でしょうね。 どのタイミングで保護をかけるかパソコンは判断できませんから・・・
お礼
遅くなりましたが、回答ありがとうございました。 なんとか解決しました。
お礼
遅くなりましたが、回答ありがとうございました。 さっそく実行させてもらったところ、希望どおりのものが出来て安心&満足してます。 大変参考になりました、本当にありがとうございました。