ワークシート内の計算式が入力されているセルのみを保護する方法です。

ユーザーに計算式は触られたくないことはよくあることと思います。このマクロを使うと1回で保護できます。


計算式が入力されているセルを保護するマクロ

VBA入力画面
VBAプログラムを入力するVBE画面

入力したコードです。

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.