• ベストアンサー

入力したセルを自動的に変更不可にしたい

Excelで、集計表を作成してます。1月~12月まで、毎月数値を入力すれば自動で演算・グラフ作成するようにしたのですが、私以外のExcel初心者の方も入力することがあるので、既に集計が済んでいる月の数値を過ってでも変更・消去等されてしまうと、少々困るのです。 そこで、1月から入力していく際に、一度入力したセルを変更・消去を自動で不可能にすることは可能でしょうか?《シートの保護》で毎月入力後に規制をかけるしかないのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • hana-hana3
  • ベストアンサー率31% (4940/15541)
回答No.2

VBAで可能です。 予め入力したいセルのロックを外してからシートの保護をします。 シートモジュールのイベントで出来ますが、入力後の修正を行うが面倒になります。 Private Sub Worksheet_Change(ByVal Target As Range) ActiveSheet.Unprotect Target.Locked = True ActiveSheet.Protect End Sub

yumaaizawa
質問者

お礼

遅くなりましたが、回答ありがとうございました。 さっそく実行させてもらったところ、希望どおりのものが出来て安心&満足してます。 大変参考になりました、本当にありがとうございました。

その他の回答 (2)

  • Masa2072
  • ベストアンサー率51% (94/182)
回答No.3

ブックを開く際に該当月のシートのみ保護を解除し、閉じる際に全てのシートに保護を書けるというのが現実的だと思います。 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

yumaaizawa
質問者

お礼

遅くなりましたが、回答ありがとうございました。 大変参考になりました。 なんとか無事に解決することが出来ました。

  • tacacazu
  • ベストアンサー率25% (125/495)
回答No.1

自動的にっていうのは無理でしょうね。 どのタイミングで保護をかけるかパソコンは判断できませんから・・・

yumaaizawa
質問者

お礼

遅くなりましたが、回答ありがとうございました。 なんとか解決しました。

関連するQ&A

専門家に質問してみよう