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

シートの操作

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

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

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

あわせて読みたい
エクセルVBAを使ってワークシートにあるシート名の欄を非表示にする方法 エクセルVBAを使って作成したファイルを自分だけで使うならば問題ないのですが、複数のスタッフで共有して使っていると、シート名を直接クリックして移動されてしまうと...

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

目次

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

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

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

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

あわせて読みたい
探したいセルの値が何行目にあるか調べる関数 VLOOKUP関数でうまくいかなかった? だからサイトを探していたらここにたどり着きませんでしたか? 表の中から探したい値を検索する関数といえばVLOOKUP関数ですが、す...
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」を一気にまとめて入力しておくこともできますよ。

あわせて読みたい
空白セルに0を選択範囲まとめて入力 表の中のセル全てにデータが入力されていれば問題ないのですが、時々空白のままってありますよね。 その時にデータを並べ替えたら空白セルが上位になってしまった経験あ...
シートの保護関連VBAコード
目次