2016-07-21 69 views
0

助けを借りてくださいブックを削除して保護する

私は現在のシートを削除するための "ボタン"に割り当てられたコードを持っています。シートとワークブックはパスワードで保護されています。私はシートを削除するためにボタンを使用することができますが、問題は、そのブックを保護していないことです。提案してください。

Sub Deletetab() 
    Application.DisplayAlerts = False 
    If MsgBox("Deleting Current Sheet, Data entered on this sheet will be lost", vbOKCancel) = vbOK Then 
      ThisWorkbook.Unprotect Password:="xyz" 
      Application.DisplayAlerts = False 
      ActiveWindow.SelectedSheets.Delete 
      ThisWorkbook.Protect Password:="xyz" 
      Application.DisplayAlerts = True 
      Else: Exit Sub 
    End If 
    Application.DisplayAlerts = True 
    ThisWorkbook.Protect Password:="xyz" 
    End Sub 

助けてください。

+0

https://msdn.microsoft.com/en-us/library/office/ff193800.aspx –

+0

何かを試してみてくださいこのActiveWorkbook.Protect構造体のように= True、Windows:= False、パスワード:= "xyz" – skkakkar

答えて

0

あなたのコードにThisWorkbook.Protect Password:="xyz"が2回あります。

(テストされ、私のエクセルで[OK]を実行しました)以下の修正コードを試してください:

Sub Deletetab() 

Application.DisplayAlerts = False 
If MsgBox("Deleting Current Sheet, Data entered on this sheet will be lost", vbOKCancel) = vbOK Then 
    ThisWorkbook.Unprotect Password:="xyz" 
    ActiveWindow.SelectedSheets.Delete 
    ThisWorkbook.Protect Password:="xyz" 
    Application.DisplayAlerts = True 
End If  
Application.DisplayAlerts = True 

End Sub 
+0

返信ありがとうございます!!私はThisWorkbookの代わりにActiveWorkbook.Protectを使用しました。しかし、ワークブックを(10分/ 15分のように)しばらく開いておくと、パスワードがロック解除されます。私はその奇妙なことを知っている、私はここにタイムアウトやあなたが示唆することができるものがあるかどうかわからない。 – sady

+0

@sadyこのコードはどこにありますか?どのモジュール? –

+0

私はそれをモジュール上に持っており、このコードをシート上のボタンに割り当てました。現時点では、上記のコードは正常に動作しています。しかし、私の問題は、ワークブックを開いたままにしておくと(10分/ 15分など)、ワークブックのパスワードを解除することです。私はどこが間違っているのか分かりません – sady

関連する問題