• ベストアンサー

コードの非表示

VBコードを非表示にしたいのですが。 ツール→VBAプロジェクト→保護→プロジェクトのロックで パスワードを設定しました。非表示になり、表示するためには 正しいパスワードを入力しないと出来ません。 うまくいったようですが、穴がありました。 シートを他のブックに移動すると、プロジェクトのロックが 解除され、パスワード無しで表示されます。 コード非表示の完璧な方法は無いでしょうか。

質問者が選んだベストアンサー

  • ベストアンサー
  • korin_
  • ベストアンサー率69% (46/66)
回答No.3

シートの保護ではなくブックの保護からシート構成のみを保護すれば、セルに入力は出来ますよ。 ご希望の動きかはわかりませんが、以下の手順で可能です。 [ツール]-[保護]-[ブックの保護]-[シート構成]にチェック

iso27001
質問者

お礼

こんばんは。再度の回答、ありがとうございました。 ご回答のとおりでるのを確認しました。 どうもスクリプトの方ばかりに目がいって、Excelの 基本的な使い方を知らないのが良く判りました。 反省!冷汗!

その他の回答 (2)

  • korin_
  • ベストアンサー率69% (46/66)
回答No.2

こんにちは。 シートのコピーを禁止して、シート自体をコピーや移動が出来ないようにするのではダメですか? [ツール]-[保護]-[ブックの保護]-[シート構成]にチェック

iso27001
質問者

お礼

こんばんは。 ご回答、ありがとうございました。 コードでのプロテクトが難しいと感触を持った時に 実は私もシートの保護を考えましたが、リードオンリー になってしまうのを再確認し、断念しました。 シート保護でも(Excelのバージョンに拠らないで)セルへの 入力が出来れば良いのですが。

  • diashun
  • ベストアンサー率38% (94/244)
回答No.1

確かに、シートを移動またはコピーすると、元ブックのロックが解除されます。これを防ぐ方法はわかりませんが、コピーされるのはシートモジュールだけで、標準モジュールはコピーされません。したがって、シートモジュールには、最低限のサブモジュール呼び出しのソースしか記述せず、サブモジュールはすべて標準モジュールに記述しておけば、ソースの秘匿性は守られるはずです。とりあえず識者のより高度なお助けがあるまでの次善の策ですが・・・。

iso27001
質問者

お礼

早速の、ご回答ありがとうございました。 重要なモジュールのみを標準モジュールに記述しておけば 確かにパクリは防げますね。 早速、やってみます。ありがとうございました。