-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathProtectionActions.vb
94 lines (86 loc) · 4.11 KB
/
ProtectionActions.vb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
Imports DevExpress.Spreadsheet
Imports System
Imports System.Drawing
Namespace SpreadsheetDocServerAPIPart2
Public Module ProtectionActions
Public ProtectWorkbookAction As Action(Of Workbook) = AddressOf ProtectWorkbook
Public UnprotectWorkbookAction As Action(Of Workbook) = AddressOf UnprotectWorkbook
Public ProtectWorksheetAction As Action(Of Workbook) = AddressOf ProtectWorksheet
Public UnprotectWorksheetAction As Action(Of Workbook) = AddressOf UnprotectWorksheet
Public ProtectRangeAction As Action(Of Workbook) = AddressOf ProtectRange
Private Sub ProtectWorkbook(ByVal workbook As Workbook)
' #Region "#ProtectWorkbook"
Dim worksheet As Worksheet = workbook.Worksheets("ProtectionSample")
workbook.Worksheets.ActiveWorksheet = worksheet
' Protect workbook structure with a password.
If Not workbook.IsProtected Then
workbook.Protect("password", True, False)
End If
' Add a note.
worksheet("B2").Value = "Workbook structure is protected with a password. " & vbLf & " You cannot add, move or delete worksheets until protection is removed."
worksheet.Visible = True
' #End Region ' #ProtectWorkbook
End Sub
Private Sub UnprotectWorkbook(ByVal workbook As Workbook)
' #Region "#UnprotectWorkbook"
Dim worksheet As Worksheet = workbook.Worksheets("ProtectionSample")
workbook.Worksheets.ActiveWorksheet = worksheet
' Unprotect the workbook.
If workbook.IsProtected Then
workbook.Unprotect("password")
End If
' Add a note.
worksheet("B2").Value = "Workbook is unprotected. Workheets can be added, moved or deleted."
worksheet.Visible = True
' #End Region ' #UnprotectWorkbook
End Sub
Private Sub ProtectWorksheet(ByVal workbook As Workbook)
' #Region "#ProtectWorksheet"
Dim worksheet As Worksheet = workbook.Worksheets("ProtectionSample")
workbook.Worksheets.ActiveWorksheet = worksheet
' Protect the worksheet with a password.
If Not worksheet.IsProtected Then
worksheet.Protect("password", WorksheetProtectionPermissions.Default)
End If
' Add a note.
worksheet("B2").Value = "Worksheet is protected with a password. " & vbLf & " You cannot edit or format cells until protection is removed." & vbLf & "To remove protection, on the Review tab, in the Changes group," & vbLf & "click ""Unprotect Sheet"" and enter ""password""."
worksheet.Visible = True
' #End Region ' #ProtectWorksheet
End Sub
Private Sub UnprotectWorksheet(ByVal workbook As Workbook)
' #Region "#UnprotectWorksheet"
Dim worksheet As Worksheet = workbook.Worksheets("ProtectionSample")
workbook.Worksheets.ActiveWorksheet = worksheet
' Unprotect the worksheet.
If worksheet.IsProtected Then
worksheet.Unprotect("password")
End If
' Add a note.
worksheet("B2").Value = "Worksheet is unprotected. You can edit and format cells."
worksheet.Visible = True
' #End Region
End Sub
Private Sub ProtectRange(ByVal workbook As Workbook)
' #Region "#ProtectRange"
Dim worksheet As Worksheet = workbook.Worksheets("ProtectionSample")
workbook.Worksheets.ActiveWorksheet = worksheet
worksheet("B2:J5").Borders.SetOutsideBorders(Color.Red, BorderLineStyle.Thin)
' Specify user permission to edit a range in a protected worksheet.
Dim protectedRange As ProtectedRange = worksheet.ProtectedRanges.Add("My Range", worksheet("B2:J5"))
Dim permission As New EditRangePermission()
permission.UserName = Environment.UserName
permission.DomainName = Environment.UserDomainName
permission.Deny = False
protectedRange.SecurityDescriptor = protectedRange.CreateSecurityDescriptor(New EditRangePermission() { permission })
protectedRange.SetPassword("123")
' Protect the worksheet with a password.
If Not worksheet.IsProtected Then
worksheet.Protect("password", WorksheetProtectionPermissions.Default)
End If
' Add a note.
worksheet("B2").Value = "This cell range is protected with a password. " & vbLf & " You cannot edit or format it until protection is removed." & vbLf & "To remove protection, double-click the range and enter ""123""."
worksheet.Visible = True
' #End Region ' #ProtectRange
End Sub
End Module
End Namespace