アプリ版:「スタンプのみでお礼する」機能のリリースについて

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

A 回答 (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
    • good
    • 0
この回答へのお礼

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

お礼日時:2008/06/12 15:36

VBAで可能です。



予め入力したいセルのロックを外してからシートの保護をします。
シートモジュールのイベントで出来ますが、入力後の修正を行うが面倒になります。

Private Sub Worksheet_Change(ByVal Target As Range)
ActiveSheet.Unprotect
Target.Locked = True
ActiveSheet.Protect
End Sub
    • good
    • 0
この回答へのお礼

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

お礼日時:2008/06/12 15:24

自動的にっていうのは無理でしょうね。



どのタイミングで保護をかけるかパソコンは判断できませんから・・・
    • good
    • 0
この回答へのお礼

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

お礼日時:2008/06/12 15:00

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!