- ベストアンサー
マクロが動作しないように保護したいのですが、その仕方を教えてください。
VBAで情報処理用のプログラムをつくりました。それほど立派なものでもないのですが、念のため保護をしたいのです。コードを非表示してロックすることは知っているのですが、パスワードを入力しないと、マクロ自体が動作しないようにすることはできるのでしょうか。 もし可能であれば、是非その方法を教えていただきたいのです。宜しくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
一案です こんなのは? 共通な変数を作成し パスワード入力で認証して 各マクロの先頭に If Not 認証 Then Exit Sub 追加すればおしまい 1回の認証でファイルを閉じるまで有効 Public 認証 As Boolean Sub パスワード入力() If InputBox("パスワードを入れてネ") = "abc123" Then 認証 = True End Sub Sub あるマクロ() If Not 認証 Then Exit Sub MsgBox "処理実行" End Sub 他にも 案のみ ボタンでマクロの起動をしているなら ボタンを非表示にしておき 認証が取れたら表示する CommandButton1.Visible = False イベント起動なら イベントを無効にしておき 認証が取れたらイベントを有効にする Application.EnableEvents = False などが主な所でしょうか
その他の回答 (1)
- nattocurry
- ベストアンサー率31% (587/1853)
質問者様がイメージしているのとは違う動作になるとは思いますが、 パスワードが abcde だとして、 マクロの先頭に、 If InputBox("パスワードを入れてください") <> "abcde" Then MsgBox "パスワードが違います。マクロを終了します。" Exit Sub End If と書いて、正しいパスワードを入れないと、マクロが走らないようにするのはどうですか? これだと、マクロを実行するたびに、パスワードを入れないといけませんが。
お礼
いろいろな方法があるんですね。とても参考になりましたし、解決いたしました。誠にありがとうございます。