[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『範囲内のエクセルを入力後に保護する方法』(mackey)
他の方の質問で
「セル入力後→保護する」という以下マクロがあり、シート全体に保護が掛かるのですが、一部の列はこのマクロを適用させたくありません。
'--------------
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Me.Protect , , , , True
If Target.Count > 1 Then Exit Sub
Target.Locked = True
End Sub
'--------------
シートの保護を解除しようとすると、全体が解除になりますし、範囲の一部だけ「セル入力後→保護する」といった形はできないものでしょうか。
< 使用 Excel:Excel2010、使用 OS:Windows7 >
もう少し具体的に説明いただけますか? 提示頂いたコードは、 1)いずれかのセルに変更があったとき 2)VBAからのみ変更ができる保護をして 3)変更されたセルが1つのみの場合 4)セルの書式設定>保護>ロックを掛ける
というコードです。 この4番だけ指定した列を除外したいということですか? それとも、1番の「いずれかのセルに変更」を「指定した列を除いた変更」にしたいのでしょうか? (稲葉) 2015/10/29(木) 08:54
ちょっとしばらく返事できそうにないので
4番除外の場合
Option Explicit
Const ExcColumn As String = "C"
Private Sub Worksheet_Change(ByVal Target As Range)
Me.Protect userinterfaceonly:=True
If Intersect(Target, Cells(1, ExcColumn).EntireColumn) Is Nothing Then
If Target.CountLarge = 1 Then
Target.Locked = True
End If
End If
End Sub
1番を除外の場合
Option Explicit
Const ExcColumn As String = "C"
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Cells(1, ExcColumn).EntireColumn) Is Nothing Then
Me.Protect userinterfaceonly:=True
If Target.CountLarge = 1 Then
Target.Locked = True
End If
End If
End Sub
(稲葉) 2015/10/29(木) 09:09
まっさらな時は、全てのセルのロックを外しておいて、 変更を加えたら、それ以上変更できないようにロックする、という機能かな〜?と思ってましたが 間違えたときどうするんだろうとか、考えてしまいますね! (稲葉) 2015/10/29(木) 11:53
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.