- ベストアンサー
一括保護のマクロにパスワードをかける方法
- エクセル作った表、20シートを一括保護・解除をマクロを使い(どなたかの回答をコピーして)作成しました。
- 保護・解除はできたのですが、このマクロにパスワードをかけ、保護の解除が他の人に出来ないようにしたいのですが、どのようにすれば良いのでしょうか?
- VBA初心者で、わかりにくい説明ですが、よろしくお願いいたします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
ANo.1です。 そういう質問だったのですね。失礼しました。 『保護』のマクロ内にある .Protectの箇所を .Protect Password:="<パスワード>" ※<パスワード>には半角英数字で設定するパスワードを記入 すればOKです。 これでパスワード付きで保護されますので、解除するときはパスワードの入力画面が表示されます。
その他の回答 (3)
- qualheart
- ベストアンサー率41% (1451/3486)
できました? パスワード要求されませんか? うーん、ちゃんとできてればそんなことはないはずなので、もしできないとしたらどこかおかしのでしょうね・・・ 試しにパスワードを追加したソースコードをそのまま補足に貼り付けてもらえますか? 見ればどこが悪いのか分かると思いますので・・・ できてるのなら、良いのですが・・・w
お礼
できました。 パスワードも要求され、カンペキです!(^^)! ありがとうございました。
- qualheart
- ベストアンサー率41% (1451/3486)
補足です。 『Workbook』のマクロの .Protectの箇所も .Protect Password:="<パスワード>" にしてください。
お礼
できました~。 ありがとうございました。 これで、明日から仕事が進みます。 本当にありがとうございました。
補足
パスワードを要求されず、保護が解除されてしまうのですが、何故でしょうか?
- qualheart
- ベストアンサー率41% (1451/3486)
マクロ自体に保護をかけることはできますよ。 Visual Basic Editorの左側に表示されるプロジェクトツリーでVBAProject(ブック名)を右クリックして[VBAProjectのプロパティ]を選択します。 [保護]タブにパスワードの設定欄があるので、ここにパスワードを設定すれば、パスワードを入力しない限りVisual Basic Editorでマクロの中身を見ることはできなくなります。
補足
回答ありがとうございます。 すみません、質問が悪かったですね・・・。 マクロの中身を保護ではなくて、シートの保護を解除するのに、パスワードを入力しないと、保護を解除できないようにしたいのですが。 お分かりになりますか?
お礼
ありがとうございました。 まだ、何かが違うのでしょうか、 Sub シートの保護() 'Dim~として変数を宣言する Dim myWS As Worksheet 'myWSを「ワークシート」として宣言 'ブック中のシート全部を1枚ずつ以下の作業を繰り返す For Each myWS In Worksheets With myWS 'myWSで .EnableSelection = xlUnlockedCells 'ロックしていないセルを選択出来るように .Protect psssword:="****" '保護する End With 'With myWSに対する締め Next myWS 'Forに対応するもの End Sub と、いれたら「名前付き引数が見つかりません」・・・となってしまったのですが、どうしたら良いでしょうか。 お手数おかけいたしますが、よろしくお願いいたします。
補足
度々、すみません。 passwodではなく、pssswordと入れてました。