• ベストアンサー

マクロが動作しないように保護したいのですが、その仕方を教えてください。

VBAで情報処理用のプログラムをつくりました。それほど立派なものでもないのですが、念のため保護をしたいのです。コードを非表示してロックすることは知っているのですが、パスワードを入力しないと、マクロ自体が動作しないようにすることはできるのでしょうか。 もし可能であれば、是非その方法を教えていただきたいのです。宜しくお願いします。

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

  • ベストアンサー
  • hige_082
  • ベストアンサー率50% (379/747)
回答No.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 などが主な所でしょうか

milktea06
質問者

お礼

いろいろな方法があるんですね。とても参考になりましたし、解決いたしました。誠にありがとうございます。

その他の回答 (1)

  • nattocurry
  • ベストアンサー率31% (587/1853)
回答No.1

質問者様がイメージしているのとは違う動作になるとは思いますが、 パスワードが abcde だとして、 マクロの先頭に、   If InputBox("パスワードを入れてください") <> "abcde" Then     MsgBox "パスワードが違います。マクロを終了します。"     Exit Sub   End If と書いて、正しいパスワードを入れないと、マクロが走らないようにするのはどうですか? これだと、マクロを実行するたびに、パスワードを入れないといけませんが。

関連するQ&A