2016-05-24 6 views
0

マクロ有効テンプレートで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 

答えて

0

参照:http://www.cpearson.com/excel/Protection.aspx

UserInterfaceOnly設定は、あなたが ブックを閉じるときに保存するので、あなたは、ブックを開いたときにそれを設定する必要はありません。最適な 場所は、Workbook_Openイベントプロシージャです。

関連する問題