マクロ有効テンプレートでSetProtection()
という簡単なサブを1回実行しました。ワークブックには9つのタブがあります。私はUserInterfaceOnly:=True
のようにコードを実行しました。テンプレートが開いている間は正常に動作します。私はテンプレートを保存して閉じます。 WindowsのフォルダビューからExcelファイルをダブルクリックして、Excelが新しいワークブックを開くようにします。 UserInterfaceOnly:=True
の設定は、新しいワークブックで忘れられています。 vbaがロックされている別のセルの値を変更しようとすると、セルの値が変更されたときにエラーが発生します。Excel 2013 VBA wsheet.protect UserInterfaceOnly:= True
私は、テンプレートファイルを編集し、マクロ有効ブックとしてsavesと言う。ブックを編集すると、UserInterfaceOnly:=True
の設定が引き続き使用されます。 VBAはロックされたセルに変更を加えることができます。
UserInterfaceOnly:=True
をExcelのテンプレートファイルで渡すべきではありませんか?
Sub SetProtection()
Dim wSheet As Worksheet
Dim Pwd As String
Pwd = InputBox("Enter your password to protect all worksheets", "Password Input")
For Each wSheet In Worksheets
wSheet.Protect Password:=Pwd, UserInterfaceOnly:=True
Next wSheet
End Sub