• ベストアンサー

エクセルのシート保護をマクロのボタンで

ご教示下さい。 エクセルでのシート保護の設定をボタン一つで出来るようにと思い、マクロの自動記録で作成してみましたが、設定したはずのパスワードが記録されていません。 シート保護の解除にパスワードの入力が必要なようにする、シート保護のマクロは出来るでしょうか?。 どなたか、よろしくお願いいたします。

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

  • ベストアンサー
  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.1

質問は2つの意味に読み取れます。どちらでしょうか 1)シートのプロテクト、アンプロテクト時にVBAでパスワードを指定したい 2)シートのプロテクト時にVBAでパスワードを指定して、アンプロテクトするときはパスワードの手入力をさせたい 掲載したのマクロサンプルはアクティブシートの「保護/非保護」を切り替えるものです。「非保護」にするときパスワードを手入力させるようにしていますが、コメントにしてある4行目を3行目と入れ替えるとパスワード入力は不要になります 以下のマクロをALT+F11でVBE画面を開き、左上のVBA Projectでシート名を右クリックし「挿入」→「標準モジュール」で表示される画面に貼り付けて下さい。マクロの実行はワークシート画面に戻ってALT+F8でマクロ一覧を開き、マクロ名を選択して「実行」ボタンです。画面にオートシェイプやフォームのコマンドボタンを貼り付けて、マクロ登録するのがよいでしょう Sub Macro1() If ActiveSheet.ProtectContents Then   ActiveSheet.Unprotect '← パスワードは手入力 '  ActiveSheet.Unprotect password:="aaa" '← パスワード入力不要 Else   ActiveSheet.Protect Password:="aaa" End If End Sub でもマクロ中にパスワードを直書きすると、VBE画面を開くとパスワードが分かってしまうので不都合です。それを避けるためにはVBE画面で「ツール」→「VBAProjectのプロパティ」→「保護タブ」で「プロジェクトを表示用にロックする」にチェックしてパスワードを指定してください。一旦保存して再度ブックを開くとマクロはパスワードなしでは表示できなくなります

hijtxa
質問者

お礼

早速のご教示、ありがとうございました。 希望どおりのものが出来ました。 今後も、よろしくお願いいたします。

関連するQ&A