
シート保護をかけているブックに対して、処理するマクロがあるのですが、
毎回、
シート保護解除→データ処理→シート保護(パスワード付き)
を繰り返すのが面倒なので、
下記の様に、処理直前にマクロによる変更を許可する処理を入れています。
ActiveSheet.Protect UserInterfaceOnly:=True, Password:="vwxyz"
もともと、パスワード付きシート保護がかかっていてもエラーを返されることがなかったため、おまじないとして先頭に置いてますが、何度も重複してても問題なのでしょうか?
つまり、一つのマクロの中で、他のブックやシートに切り替える度に入れています。
「それで問題ない、大丈夫」とか
「本当はやらない方が良い」とか「好ましくない」とか詳しい方の見解をお聞かせ願えないでしょうか?
A 回答 (1件)
- 最新から表示
- 回答順に表示

No.1
- 回答日時:
>ActiveSheet.Protect UserInterfaceOnly:=True, Password:="vwxyz"
これ自体は悪さはしないでしょうが、
このまま保存して、開いたときは保護されていないはず。
不安なのできっちりテストしてみました。
下記のファイル・シート構成です。
マクロ本体.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 さんの気のせいって事でよろしいですね?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) ExcelVBA ドロップボックスで月を選択するとそれ以降のデータが残るようにしたい。 3 2022/12/16 14:53
- Visual Basic(VBA) VBAでシートの保護をかける際に「書式設定の変更」を有効にする 1 2023/04/17 18:18
- Excel(エクセル) 【困っています】VBA 追加処理の記述を教えてください。 1 2022/08/25 22:54
- Visual Basic(VBA) 【前回の続き続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/24 20:49
- PowerPoint(パワーポイント) エクセルのマクロについて教えてください。 1 2022/03/25 17:03
- Excel(エクセル) フォルダ内の全ブックのシート名を変更したい 7 2022/09/22 21:34
- Visual Basic(VBA) 【困っています2】VBA 追加処理の記述を教えてください。 2 2022/08/26 11:42
- Visual Basic(VBA) エクセルのマクロについて教えてください。 5 2023/06/02 08:44
- Visual Basic(VBA) 特定の文字を含むシートだけマクロ処理をしたい 1 2023/05/22 01:43
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/03/01 15:44
このQ&Aを見た人はこんなQ&Aも見ています
-
ActiveSheet.Protect UserInterfaceOnly:=Trueの書き場所は
Excel(エクセル)
-
エクセルVBAでブック保護のUserInterfaceOnly:=Trueはダメ?
Excel(エクセル)
-
ユーザーフォームを表示中にシートの操作をさせるには
Excel(エクセル)
-
-
4
VBAでブック保護非保護を判定するには?
Excel(エクセル)
-
5
特定のシートの削除を禁止したい(ブックの保護でなく)
Excel(エクセル)
-
6
Excelでセル参照したとき、書式も一緒に持ってくるには?
Windows Vista・XP
-
7
エクセルのエラーメッセージ「400」って?
Visual Basic(VBA)
-
8
Excelのセルにユーザー名を表示する方法
Excel(エクセル)
-
9
【Excel】他ブックからOpenされたブックはUserInterfaceOnlyが効かない?
その他(Microsoft Office)
-
10
ユーザーフォームに入力したデータを保持する方法
Visual Basic(VBA)
-
11
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
12
実行時エラー'1004': WorkSheetクラスのVisibleプロパティを設定できません
Visual Basic(VBA)
-
13
Excelの入力規則で2列表示したい
Excel(エクセル)
-
14
エクセルVBA InputBoxで入力欄を*****
Excel(エクセル)
-
15
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
16
VBAでユーザーフォームを再表示させたい。
Excel(エクセル)
-
17
VBA シートのボタン名を変更したい
Visual Basic(VBA)
-
18
エクセルのチェックボックスを保護対象から外すには
Windows Vista・XP
-
19
《エクセルVBA》「他の人が該当ファイルを使用中の場合」の処理
Excel(エクセル)
-
20
EXCELのVBAでシートコピーをしたとき元のマクロを削除するには?
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
excelのマクロで該当処理できな...
-
XL:BeforeDoubleClickが動かない
-
【ExcelVBA】全シートのセルの...
-
Excelマクロのエラーを解決した...
-
特定の文字を含むシートだけマ...
-
実行時エラー'1004': WorkSheet...
-
別のシートから値を取得するとき
-
ユーザーフォームに入力したデ...
-
エクセルで通し番号を入れてチ...
-
VBA 検索して一致したセル...
-
エクセルのVBAの変更点がわ...
-
シート名の一部を変更する方法...
-
userFormに貼り付けたLabelを変...
-
セルのコピーで「オブジェクト...
-
VBAで以下の処理をする方法があ...
-
エクセルのシート名変更で重複...
-
シートが保護されている状態で...
-
ExcelのVBAコードについて教え...
-
エクセルVBA Ifでシート名が合...
-
【VBA】色のついたシート名を取得
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
特定の文字を含むシートだけマ...
-
Excelマクロのエラーを解決した...
-
excelのマクロで該当処理できな...
-
ユーザーフォームに入力したデ...
-
実行時エラー'1004': WorkSheet...
-
XL:BeforeDoubleClickが動かない
-
エクセルVBA Ifでシート名が合...
-
実行時エラー1004「Select メソ...
-
エクセルのシート名変更で重複...
-
【ExcelVBA】全シートのセルの...
-
VBA 存在しないシートを選...
-
ブック名、シート名を他のモジ...
-
Excel チェックボックスにチェ...
-
VBA 検索して一致したセル...
-
エクセルで通し番号を入れてチ...
-
シートが保護されている状態で...
-
【VBA】特定の文字で改行(次の...
-
ExcelのVBAのマクロで他のシー...
-
Worksheet_Changeの内容を標準...
-
EXCELVBAを使ってシートを一定...
おすすめ情報