- 締切済み
エクセルVBAの実行保護について教えてください。
エクセル2000VBAで構文を複数作り、シート上にボタンを配置し実行させたいと思います。 (パスワードで保護させて、VBAの構文は管理者以外に見えないようにしました) その複数のマクロの中には、実行させたくないものもあります。(管理者のみが行うマクロ) シート上のボタンで配置したもののみ実行可能にして、「ツール」-「マクロ」から誰でも実行させないような方法を教えてください。 つたない説明で申し訳ありませんが、ご理解いただけたでしょうか? よろしくお願い致します。
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- ki-aaa
- ベストアンサー率49% (105/213)
実行させたくない、VBAのときには、パスワードの入力を求めたらどうでしょうか。 Sub Macro1() If InputBox("このマクロを実行するには、パスワードの入力が必要です。 ""*****""") _ <> "12345" Then Exit Sub MsgBox "実際の処理" End Sub
- tinu 2000(@tinu2000)
- ベストアンサー率40% (147/366)
#2です。 勘違いしました。#2を取り消します。 申し訳ありません。
お礼
ありがとうございました。 またよろしくお願いします。
- tinu 2000(@tinu2000)
- ベストアンサー率40% (147/366)
> (パスワードで保護させて、VBAの構文は管理者以外に見えないようにしました) パスワードで保護してあるのなら、「ツール」-「マクロ」でも構文は見えませんので実行することができないハズです。 パスワードで保護のかけ方なんですが、 ツール→VBAProjectのプロパティ→保護の画面で、 「プロジェクトを表示用にロックする」にチェックを入れていますか?
お礼
ありがとうございました。 またよろしくおねがいします。
- p-22
- ベストアンサー率21% (69/320)
マクロを登録しなきゃ良いのでは? 具体的にはユーザーフォームを使うなどして そのユーザーフォームの呼び出しも パスワードで保護したり、 隠しボタンなどで呼び出すようにすれば OKかと・・・。
お礼
申し訳ありません。初心者です。 別の場で新たに質問させていただきます。 ありがとうございました。
お礼
ありがとうございました。 私の説明不足でもうしわけありません。 もう少し試してから、後程補足で説明させていただきますので、よろしくお願い致します。
補足
マクロを複数に分けて作成し、Callで呼び出して一連に実行させています。 その中に、書式を直すマクロを作っているのですが、シート保護させたままだと出来ないので、保護解除(それだけで単独にして構文を作りました)のマクロを組み入れて実行させています。(別に保護設定も作り、最後に実行) それが単独であるために、シートのツールからだと保護解除マクロだけが実行出来るために不具合を感じましたので、質問した次第です。 (下手な説明で申し訳ありません、ご理解いただけたでしょうか?) そのマクロを単独にしないで構文に入力すれば良いのですけれど、色々な場面で使っている為単独の方が何かと便利です。 勉強不足なので、こんな形しか思い浮かばなかったのですが、良い方法をご教示下さい。 よろしくお願い致します。