VBAから
・数式が設定されているセルのみを
・保護
できます!
保護することで
・誤操作による数式の破壊を防止
できます!
VBAコード
ここでは例として、
・シート「sample」の
・数式が設定されているセルのみを保護
します。
Option Explicit
Sub sample()
Dim ws As Worksheet
'対象シートを取得
Set ws = Worksheets("sample")
'指定したシートの保護を解除
ws.Unprotect
'指定したシート全体のセルの保護を解除
ws.Cells.Locked = False
'指定したシートの数式が設定されているセルを保護
On Error Resume Next
ws.Cells.SpecialCells(xlCellTypeFormulas).Locked = True
On Error GoTo 0
'指定したシートを保護
ws.Protect
End Sub
実行結果
数式が設定されているセルの書き換えを試みると、
書き換え不可であることを確認できます。
参考①
上記のVBAコードで使用した以下の詳細は、公式サイトをご確認ください。
●「Worksheetオブジェクト」の「Unprotect」メソッド
●「Rangeオブジェクト」の「Locked」プロパティ
●「Rangeオブジェクト」の「SpecialCells」メソッド
●「Worksheetオブジェクト」の「Protect」メソッド
参考②
シートの保護/保護を解除する方法については、以下の記事をご確認ください。