の保護に細胞をExcelできることを調べるために使うことができるVBAスクリプト
質問
を使用してい優れ、特定の分野において許可ユーザの入力やその他の細胞を保護することが出来ます。って使用されているツールの保護シートしたが、おこることはできませんの値を変更するVBAを記述します。いを制限するシートを停止ユーザー入力、同時に、VBAコードを変更細胞の価値観に基づく一定の計算.
解決
使ってみ
Worksheet.Protect "Password", UserInterfaceOnly := True
場合にはUserInterfaceOnlyパラメータがtrueの場合、VBAコードの変更ができる保護細胞
他のヒント
を修正することができるシートをコードこれらの取り組みを通じて
- 各
- 修正
- 保護
コードをこすることはできない。
Sub UnProtect_Modify_Protect()
ThisWorkbook.Worksheets("Sheet1").Unprotect Password:="Password"
'Unprotect
ThisWorkbook.ActiveSheet.Range("A1").FormulaR1C1 = "Changed"
'Modify
ThisWorkbook.Worksheets("Sheet1").Protect Password:="Password"
'Protect
End Sub
の 弱点 このメソッドの場合にはコードを途中で中断やエラー処理なチャレンジし、ワークシートが左に保護す。
このコードが 改良 これらの取り組みを通じて
- 再保護
- 修正
このコードにすることはできない。
Sub Re-Protect_Modify()
ThisWorkbook.Worksheets("Sheet1").Protect Password:="Password", _
UserInterfaceOnly:=True
'Protect, even if already protected
ThisWorkbook.ActiveSheet.Range("A1").FormulaR1C1 = "Changed"
'Modify
End Sub
このコードを更新保護に関するワークシートですが、'UserInterfaceOnly'を設定します。このVBAコードを変更するワークシート中のワークシートから保護されてユーザー入力時のUIの場合でも、実行を中断します。
この設定は 失われた 時のワークブックが閉じて再開きます。のワークシート保護しさをもっています。
での再保護"と"コードのニーズにあるのと同開始の手順を変更するワークシートはできるだけ実行する時に、一度のワークブックを開きます。
とは思わないを設定できる部分のシートは編集可能なだけでVBA, ができるものと同等の効果で、各ワークシートにVBA前に必要な変更:
wksht.Unprotect()
再保護しきいを行います。
wksht.Protect()
編集:このようにな回避策があるDheer速やかに問題が人がこの質問に答えしがたいについての私の答えは、インターネットでポイント以下の通りお知らせいたします。す ができ 保護シートを編集できるVBAのみで表示され、"UserInterfaceOnly"オプションでの限定を呼び出す時に"ワークシート."保護するコード.
基本がわかるシンプルな答え:
Sub Example()
ActiveSheet.Unprotect
Program logic...
ActiveSheet.Protect
End Sub
回避策として、を作成でき 隠れたワークシート, うに変更。の細胞の可視、保護ワークシートを示すべき価値からの隠れたワークシートを使用し簡単な式です。
ることができま 変化の表示値の隠れたワークシート, が利用できな編集することができます。
した細胞をたいと思ったロックがかかりにsheet1の提案コードのopen_workbook()関数を使ったような魅力です。
ThisWorkbook.Worksheets("Sheet1").Protect Password:="Password", _
UserInterfaceOnly:=True