2012-11-30 7 views
7

Excelワークシートの中で、セル(A1)を編集から、もう1つのセル(B1)を書式から保護したいと思います。同じワークシート内の異なるセル保護

  • A1
  • の値は、B1
  • の値がB1のフォーマット

「シートの保護を変更することはできません編集できる編集することはできません。これは、ユーザーがあることを意味します"オプションを使用すると、シート全体のすべてのロックされたセルを保護することができるため、A1とB1はロックされたときに同じ保護レベル(書式設定または編集のいずれか)を持ちます。

特定のセルまたは範囲に対して個別の保護を設定する方法、または少なくとも同じ動作を得る方法はありますか?

追加情報:

  • VBAを使用したソリューションがOKである(それはWorksheet.Protect方法は、同じ制限を持っていることになりますけれども...)
  • 編集を防止する必要のあるセルA1( )は、書式設定に対して保護されていても、されていなくてもかまいません(問題ありません)。
  • それは限り、あなたはチェックしたり、VBAで活性化できるようにセルの書式を持っていないとして、フォーマットに対応していないロックされたエクセル2003

答えて

2

で動作するはずです。したがって、B1のロックを解除するだけで、ロックされたセルとロックされていないセルを選択できるようにするだけで、フォーマットを編集することはできません。

Sub protectorate() 

    activesheet.Range("B1").Locked = False 

    With ActiveSheet 
     .Protect 
    End With 


End Sub 

これはB1の値を除き、シート全体のフォーマットおよび値の変更を防ぐことができます、それはまだあなたがB1の値を編集できるようになります。

+2

なぜこのためにVBAを使用しますか? – brettdj

+0

はい!とてもシンプルでした! :-)しかし、これはまた、同じシートの中に異なる**書式設定の**保護を持つことができないことを意味します:フォーマット可能であるかフォーマットできないかのいずれかです。私はそれを必要としないことを望む... @brettdj:はい、それはまた、VBAを使用せずに、セルのロックされたプロパティを設定して動作します。 –

+0

@brettdjこれはメニューから行うことができます。私はvbaを通して保護する個人的な習慣があると思います。メニューを使用してこれを行うためのより良い手順で編集します。 – scott

関連する問題