Program with Permissions

Microsoft provides the permissions objects through the Office object library since permissions can be applied to Excel, Word, and PowerPoint documents. Figure 6-20 illustrates the hierarchy of the permission objects.

Office permisson object model

Figure 6-20. Office permisson object model

How to do it

Once credentials are installed, you can restrict access to workbooks by setting the Permission collection’s Enabled property to True, as shown here:

   Dim irm As Office.Permission
   Set irm = ThisWorkbook.Permission
   irm.Enabled = True

The preceding code sets the workbook as Do Not Distribute. You are given full control, but no other users have permissions. Use the Add method to add permissions for other users. You must add each user individually, even if they have the same permissions, as shown here:

   Set irm = ThisWorkbook.Permission
   irm.Add "ExcelDemo@hotmail.com", MsoPermission.msoPermissionView
   irm.Add "someone@microsoft.com", MsoPermission.msoPermissionView

Use Or to combine permissions for a user. For example, the following code allows ExcelDemo@hotmail.com to read, print, and copy a workbook:

   irm.Add "someone@microsoft.com", MsoPermission.msoPermissionView Or & _
     MsoPermission.msoPermissionPrint Or MsoPermission.msoPermissionExtract

When you combine permissions, they may not display in the Excel Permissions options dialog box. Instead, the user may appear as having ...

Get Excel 2003 Programming: A Developer's Notebook now with the O’Reilly learning platform.

O’Reilly members experience live online training, plus books, videos, and digital content from nearly 200 publishers.