Home > 即効テクニック > Excel VBA > セル操作関連のテクニック > 保護されたシートで数式を非表示にする(FormulaHiddenプロパティ)

即効テクニック

セル操作関連のテクニック

保護されたシートで数式を非表示にする(FormulaHiddenプロパティ)

(Excel 2000)
シートが保護されているとき、FormulaHiddenプロパティをTrueに設定されたセルでは、そのセルを選択しても、数式バーに何も表示されなくなります。そのセルに対してはFormulaプロパティを参照することもできなくなりますので、マクロを使用して数式を確認することもできません。数式を外部に漏らしたくないような場合に使用すると良いでしょう。

 構文  Object.FormulaHidden    設定/取得

 設定項目    内容
  Object      Rangeオブジェクト

次のサンプルは、数式の入力されたセルのFormulaHiddenプロパティを全てTrueにした後、ワークシートを保護します。
●サンプル●
Sub FormulaHiddenSamp1()

    ActiveSheet.Unprotect password:="abcd"  '----シートの保護解除
    Cells.FormulaHidden = False             '----(1)
    ActiveSheet.UsedRange.SpecialCells( _
        Type:=xlCellTypeFormulas).FormulaHidden = True   '----(2)
    ActiveSheet.Protect password:="abcd"    '----シートの保護

End Sub
(1)のプロパティで全セルのFormulaHiddenプロパティを規定値のFalseに設定した後、(2)のステートメントで数式が入力されているセルのFormulaHiddenプロパティだけをTrueに設定し、シートに保護をかけています。
最初にシートの保護を解除しているのは、シートに保護がかかっている状態ではLockedプロパティの値も設定できないためです。

●注意●
LockedプロパティをFalse、FormulaHiddenプロパティをTrueにした状態においては、編集状態になった時点で数式や値はクリアされてしまいます。シート保護のパスワードは絶対に忘れないようにしましょう。