【VBA】数式が設定されているセルのみを保護する

VBAから
 ・数式が設定されているセルのみを
 ・保護
できます!

保護することで、
 ・誤操作による数式の破壊を防止
できます!

PR

VBAコード

ここでは例として、
 ・シート「sample」の
 ・数式が設定されているセルのみを保護
します。

Option Explicit

Sub sample()
    
    Dim targetSheet As Worksheet
    
    Set targetSheet = Worksheets("sample")
    
    'シート全体の保護を解除
    targetSheet.Cells.Locked = False
    
    '数式が設定されているセルを保護
    targetSheet.Cells.SpecialCells(xlCellTypeFormulas).Locked = True
    
    'シートを保護
    targetSheet.Protect
    
End Sub

念のため、「シート全体の保護を解除」します(10行目)。

その後、「数式が設定されているセルのみを保護」します(13行目)。
※「SpecialCells」メソッドの引数に「xlCellTypeFormulas」を指定することで「数式のみ」を対象にできます。

セルを保護した上でシートを保護することで、セルの保護が有効になります(16行目)。

PR

実行結果

数式が設定されているセルの書き換えを試みると、

数式が設定されているセル

書き換え不可であることを確認できます。

書き換え不可の旨のメッセージ
PR

参考①

上記のVBAコードで使用した以下の詳細については、公式サイトをご確認ください。

●「Rangeオブジェクト」の「Locked」プロパティ


●「Rangeオブジェクト」の「SpecialCells」メソッド


●「Worksheetオブジェクト」の「Protect」メソッド

PR

参考②

シートの保護/保護を解除する方法については、以下の記事をご確認ください。

タイトルとURLをコピーしました