エクセルのセルの計算式を隠してシート保護する

シートの操作 シートの操作

エクセルで作った表などを他の人に渡すことありませんか?

そのエクセルファイルには計算式などが入っているセル、見られたくないとか計算式編集・コピーされたくないって思った事ありませんか?

シートの保護設定したら編集や誤って消してしまう事は防げますが、計算式は見られてしまいます。

そこで、シートの保護設定するVBAコードにたった2行追加して、計算式を非表示にしてシートの保護設定をすると解決します。

スポンサーリンク

計算式を非表示してシート保護

エクセルのセルに入力した計算式を見られないように隠すには、FormulaHiddenプロパティを使います。

そしてシート保護設定をすることにより、「True」に設定すれば非表示となり、「False」に設定すると元に戻り表示します。

こうすると、下の図のように「セルの値を検索範囲の中の何行目にあるか」を調べるMATCH関数の数式バーが空欄になり、何も表示されなくなります。

FormulaHiddenプロパティfalse
セルF2を含む表の中の数式表示中
FormulaHiddenプロパティ True
数式が隠せた!

では、ユーザーフォームに配置したコマンドボタンに、シートの保護VBAコードに2行足して書きましょう。

計算式を隠してシートを保護するVBA

Private Sub CommandButton1_Click()
Range(“F2”).CurrentRegion.SpecialCells(xlCellTypeFormulas).Select
Selection.FormulaHidden = True
ActiveSheet.Protect
End Sub

VBA解説
  1. コマンドボタン1が押されたら
  2. F2を含むセルの範囲で計算式のセルを選択する
  3. 選択範囲を非表示にする
  4. 表示中のシート保護設定をする
  5. マクロ終了

これで計算式を隠してシートの保護ができるようになりました。

<span class="fz-12px">とりっぷぼうる</span>
とりっぷぼうる

Trueの部分をFalseに変えてProtectの部分をUnprotectにすると、計算式を表示してシートの保護解除できますよ。

計算式の入っているセルの範囲つながりで、表の範囲から空白セルを見つけてまとめて任意の値や「0」を一気にまとめて入力しておくこともできますよ。

シートの保護関連VBAコード