プロが教えるわが家の防犯対策術!

シート保護をかけているブックに対して、処理するマクロがあるのですが、
毎回、
シート保護解除→データ処理→シート保護(パスワード付き)
を繰り返すのが面倒なので、

下記の様に、処理直前にマクロによる変更を許可する処理を入れています。
ActiveSheet.Protect UserInterfaceOnly:=True, Password:="vwxyz"

もともと、パスワード付きシート保護がかかっていてもエラーを返されることがなかったため、おまじないとして先頭に置いてますが、何度も重複してても問題なのでしょうか?
つまり、一つのマクロの中で、他のブックやシートに切り替える度に入れています。

「それで問題ない、大丈夫」とか
「本当はやらない方が良い」とか「好ましくない」とか詳しい方の見解をお聞かせ願えないでしょうか?

A 回答 (1件)

>ActiveSheet.Protect UserInterfaceOnly:=True, Password:="vwxyz"


これ自体は悪さはしないでしょうが、
このまま保存して、開いたときは保護されていないはず。
    • good
    • 0
この回答へのお礼

不安なのできっちりテストしてみました。
下記のファイル・シート構成です。

マクロ本体.xlsm
01.xlsm(シート2枚)
02.xlsx(シート2枚)

マクロ本体のマクロによって、01と02のブックを開き、
各シートの処理直前に「ActiveSheet.Protect UserInterfaceOnly:=True, Password:="vwxyz"」を入れました。
処理後、上書き保存でブックを閉じるようになっています。

まず、01、02ともシートにパスワード保護がかかっている状態でマクロ実行したところ、
01、02ともにパスワード保護がかかっておりました。

次に、01、02ともシートにパスワード保護がかかっていなかった状態でマクロ実行したところ、
01、02ともにパスワード保護がかかっておりました。

つまり、この1行を入れておくだけで、事前に保護かけ忘れていたとしても、必ず保護をかけなおしてくれると想定できる結果となりました。

よろずやkinchan さんの気のせいって事でよろしいですね?

お礼日時:2018/07/05 14:25

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A