• ベストアンサー

VBEコードを保護する方法について

エクセル2003、VBEの標準モジュールコードウィンドウにマクロを作りました。これを他人に見られないように保護したいと思い、メニュー>ツール>VBAProjectのプロパティ>保護>プロジェクトのロックにチェック>パスワード2回入力>OK>保存と処理した後、そのファイルを開いてモジュールシートを見てみたら見ることはできませんでした。 しかしObjectsフォルダー内のシートに書いたマクロはそのシートを他のブックに移動してみたら見えてしまいました。標準モジュールに書いたものは安心できますか。もしもっといい保護方法が他にあるならば教えていただきたいのですが。

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

  • ベストアンサー
  • myRange
  • ベストアンサー率71% (339/472)
回答No.3

シートモジュールのSub~~Endの間のコードを標準モジュールに移すしかない思われます。 もちろん単純な移動では拙いので少々の工夫は要りますが。 例えば、 Sheet1のセルB2に入力があったらそれを表示するコードだとします。 '-------- Sheet1のモジュール---------- Private Sub Worksheet_Change(ByVal target As Range)  If target.Address = "$B$2" Then    MsgBox target.Value  End If End Sub '●これを次のようにするということです '----- Sheet1モジュール ----------------------- Private Sub Worksheet_Change(ByVal target As Range)   Call Test(target) End Sub '----- 標準モジュール  ------------------- Sub Test(target As Range)   If target.Address = "$B$2" Then     MsgBox target.Value   End If End Sub '----------------------------------------------- こうすると少なくともメイン処理の部分は見えなくなりますよね。 以上です。  

その他の回答 (2)

  • watabe007
  • ベストアンサー率62% (476/760)
回答No.2

>しかしObjectsフォルダー内のシートに書いたマクロは・・・ シートモジュールですね、マクロに保護をかけてもシートをコピーするとコードも、一緒にコピーされます。 [ツール]-[保護]-[ブックの保護]でパスワード付で保護を掛けるとシートのコピー、移動は出来なくなりますが これも他ブックからだと簡単にマクロでシートコピーすることが出来ます。 取り敢えず無難なのはシートモジュールから標準モジュールに書いたコードをCallするようにして 直接シートモジュールに実行コードを書かないようにすればどうでしょうか

  • nagare
  • ベストアンサー率33% (280/831)
回答No.1

シートのコピー・移動自体をできなくする というのはダメでしょうか? メニュー:ツール-保護-ブックの保護 ※VBAProjectプロパティとブックのW保護

関連するQ&A

  • VBAでVBAProjectを保護する方法(Excel2000VBA)

    Visual Basic Editorの「ツール」-「VBAProjectのプロパティ」-「保護」で、プロジェクトの保護ができますが、 SendKeysを使う以外でこの操作をマクロで実行することは可能でしょうか? もし可能でしたらそのコードを教えてください。 ヘルプには、Purotectionプロパティ値の取得のみ可能と書いてありますが、他に何か方法があればと思い質問いたしました。 よろしくお願いいたします。

  • エクセルを開く度に空白ブックではなくマクロ保存したデータが開く

    エクセルを開く度に空白ブックではなくマクロ保存したデータが開く 使い慣れないマクロの記録をして以来、エクセルを開く度に空白ブックではなく、データの入ったブックがまず開きます。マクロもうまく使えなかったので、とりあえず元のように白紙のブックが開くように戻したいと思います。 他サイトで質問しましたが、回答が理解できなくて、でもさらに質問することができませんでしたのでこちらでもう一度お聞きしたく投稿します。お分かりになる方、どうぞよろしくお願いします。 http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1337851528 >Personal.xlsmの標準モジュールに下記のコードを追加しておけば自動的に新規Book作成状態になります。 この部分がどうしたらいいのか分かりません。現在私のVBAProjectは下記のようになっています。(標準モジュールはマクロを登録していないので?無いようです)よろしくお願いいたします。 VBAProject(PERSONAL.XLSB) -Microsoft Excel Objects -Sheet1(Sheet1) -This Workbook VBAProject(Personal.xlsm) -Microsoft Excel Objects -Sheet1(export) -This Workbook

  • ExcelVBAでコード表示をさせない方法

    Excel2013でVBAコードを表示させたくありません。 ツールー>VBAProjectのプロパティ->保護ー>プロジェクトを表示用にロックする ->パスワード入力 をすると確かにパスワードがかかるようになります。 しかしそのファイルを開いて シートの移動またはコピー>移動先ブック名<新しいブック>->コピーを作成にチェック ー>OK とするとコピー先の新しいブックでパスワードでロックしていたはずの VBAコードが見れるようになります。 シートのコピーをしても見えなくする方法はありませんか? 宜しくお願いします

  • プロジェクトロックしてあるシートをコピーしてもマクロを見られないようにしたい

    プロジェクトロックしてあるブックのシート(シートモジュールにマクロあり)を他ブックへコピーした場合 コピー先のブックでそのシートモジュールに書いてあるマクロが見れてしまうのですが、プロジェクトロックを保持して(?)コピー先でもマクロを見られないようにする方法があればご教授願います。 よろしくお願いします。

  • VBA マクロ保護

    VBA マクロ保護 VBAProject 保護はツールにて保護パスワード設定しています! 私が作ったもので、コマンドボタンをクリックしたら指定された フォルダにコピー(例;Sheet1のみコピー)できるようにしています! そこのコピーのフォルダを開き、ブックを開いてみると シート保護はされていますが コードの表示にパスワード設定がなく、そのまま見えてしまいます。 そこで質問なのですが コードの表示を見れなくさせるために VBA記述でコピーするときにVBAProjectにパスワード設定させたいです。 ちなみにVBAProject本体には、パスワード設定しています。 どのようにすれば良いか?記述を教えてください!

  • マクロを保護(実行不可)するには?

    マクロを保護するために VBAProjectのプロパティにて パスワードでプロジェクトのロックを行いました。 しかしマクロの編集は不可能になりますが マクロの実行は普通にできてしまいます。 初期起動時のみのマクロであり 初回1度のみのマクロのためコマンドボタンにも反映させておらず 他人がこのマクロを実行できてしまうと不都合です。 いい方法は無いでしょうか??

  • VBAプロジェクトの保護

    エクセル2002使用です。 VBAプロジェクトの保護と解除を繰り返しているうちに、保護ができなくなってしまいました。 エクセルの画面でも、セルのロック、シートの保護、ブックの保護を繰り返していました。 何か原因があるのでしょうか? また、別件なのですが、エクセルのオプションでシートの見出しをオフにして、見えなくした状態でブックの保護をかけても、保護をかけた状態でオンにできてしまいます。操作できないようにするにはどのようにしたらよいのでしょうか? エクセルとVBEの保護について詳しいHPをお知りでしたら教えてください。

  • VBEに詳しい人教えてください(エクセル)

    エクセルのVBEのプロジェクトエクスプローラに表示されているSheet1 (Sheet1)を右クリックしたらショートカットメニューが表示され、上から"コードの表示"、"オブジェクトの表示"、"××のプロパティ"・・・・と続きますが、2番目の"オブジェクトの表示"が選択(淡色表示)出来ないブックに遭遇しました。エクセルの書式-シート-再表示も選択できません。また、ウィンドウにもブック名が表示されません。どのように設定すればそのようなことが出来るのですか?どなたか?詳しい方がおられましたら教えて頂けないでしょうか?何を調べればいいのか?よく解っていないので、取りあえずの現象を書きましたが、意味が通じるでしょうか?宜しくお願い致します。

  • コードの非表示

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

  • Excel2003 ブックの保存ができなくなりました

    VBAProjectのパスワード保護をかけた後、 一度ブックを保存して閉じて、再度ブックを開いた後、 ブックの保存ができなくなりました。 (エラーメッセージ 1回目) VBAプロジェクトが保護されているため、このファイル形式に保存することができません。 VBAプロジェクトの保護を解除するには、Visual Basic Editorの[ツール]メニューの[プロパティ]をクリックし、プロジェクトのパスワードを入力します。 ↓ (エラーメッセージ 2回目) ファイルを保存できませんでした。 とメッセージが出ましたので、パスワードを入力して再度ブックの保存を試みましたが、 ↓ (エラーメッセージ 3回目) ファイルを保存できませんでした。 と拒否されます。 この現象が起きるブックと起きないブックがありますが、 何が違うのか?判らない状態です。 違うとすれば、シート保護パスワードを設定しているくらいしか思いつきません。 原因と解決策を教えていただけますか? よろしくお願いします。

専門家に質問してみよう