ワークシート内の計算式が入力されているセルのみを保護する方法です。
ユーザーに計算式は触られたくないことはよくあることと思います。このマクロを使うと1回で保護できます。
計算式が入力されているセルを保護するマクロ
VBA入力画面
入力したコードです。
Sub 計算式が入力されているセルを保護()
On Error GoTo エラー処理
ActiveSheet.Unprotect
Cells.Select
Selection.Locked = False
Selection.SpecialCells(xlCellTypeFormulas, 23).Select
Selection.Locked = True
ActiveSheet.Protect
Range("A1").Select
Exit Sub
エラー処理:
MsgBox "保護実行中にエラーが発生しました。" + vbCrLf + Err.Description
End Sub
プログラムの説明
Subプロシージャの宣言Sub 計算式が入力されているセルを保護()
エラーが発生した場合は、エラー処理ラベルに移動
On Error GoTo エラー処理
念のためシート保護を解除
ActiveSheet.Unprotect
セル全体を選択
Cells.Select
セル全体のロックを解除します
Selection.Locked = False
数式セルを選択します
Selection.SpecialCells(xlCellTypeFormulas, 23).Select
数式セルをロックします
Selection.Locked = True
保護を実行します
ActiveSheet.Protect
A1に移動します
Range("A1").Select
プロシージャの終了
Exit Sub
エラー ラベル
エラー処理:
エラーメッセージとエラー内容を表示します
MsgBox "保護実行中にエラーが発生しました。" + vbCrLf + Err.Description
プロシージャの終了
End Sub
計算式が入力されているセルを保護するマクロの実行画面
「計算式が入力されているセルを保護」マクロを実行します。
D7セルには「=$C$4-C7」の差を計算する計算式が入力されています。このセルに他のデータを入力しようとすると「変更しようとしているセルまたはグラフは保護されているため、読み取り専用となっています。保護されているセルまたはグラフを変更するには、[校閲]タブをクリックし、[変更]グループの[シート保護の解除]をクリックして保護を解除します。パスワードの入力を要求されることもあります。」とメッセージが表示され入力できなくなっています。
Excelマクロのサンプルファイル:
フリーダウンロード
Copyright (C) excel.usefulhp.com All rights reserved.