Clase UserAccess (Excel VBA)

La clase UserAccess representa el acceso del usuario correspondiente a un rango protegido.

Set

Para usar una variable de clase UserAccess, primero debe ser instanciado, por ejemplo

Dim usrac as UserAccess
Set usrac = ActiveSheet.Protection.AllowEditRanges(1).Users(Index:=1)

Los siguientes procedimientos se pueden usar para establecer variables de clase UserAccess : UserAccessList.Item, UserAccessList.Add y AllowEditRange.Users

For Each

A continuación, se muestra un ejemplo de cómo procesar los elementos UserAccess en una colección.

Dim usracUser As UserAccess
For Each usracUser In ActiveSheet.Protection.AllowEditRanges(1).Users
	
Next usracUser

AllowEdit

Devuelve o establece un valor de tipo Boolean que indica si el usuario dispone de acceso al rango especificado de una hoja de cálculo protegida.

ActiveSheet.Protection.AllowEditRanges(1).Users(1).AllowEdit = True

Delete

Elimina el objeto.

ActiveSheet.Protection.AllowEditRanges(1).Users(1).Delete

Name

Devuelve o establece un valor de tipo String que representa el nombre del objeto.

Dim strName As String
strName = ActiveSheet.Protection.AllowEditRanges(1).Users(1).Name

UserAccessList.Add

Agrega una lista de acceso de usuarios.

Sintaxis : expression.Add (Name, AllowEdit)

Dim strName As String: strName = 
Dim usrac As UserAccess
Set usrac = ActiveSheet.Protection.AllowEditRanges(1).Users.Add(Name:=strName, AllowEdit:=True)

Arguments

Estos son los argumentos con nombre :

Name (String) - Nombre de la lista de acceso de usuarios.

AllowEdit (Boolean) - True permite a los usuarios que figuran en la lista de acceso modificar los rangos modificables de una hoja de cálculo protegida.

UserAccessList.Count

Devuelve un valor Long que representa el número de objetos de la colección.

Dim lngCount As Long
lngCount = ActiveSheet.Protection.AllowEditRanges(1).Users.Count

UserAccessList.DeleteAll

Quita todos los usuarios que tienen acceso a un rango protegido de una hoja de cálculo.

ActiveSheet.Protection.AllowEditRanges(1).Users.DeleteAll

UserAccessList.Item

Devuelve un solo objeto de una colección.

Para obtener más información sobre cómo devolver un solo miembro de una colección, vea devolver un objeto de una colección.

Sintaxis : expression.Item (Index)

Index: Nombre o número de índice del objeto.

Dim usracItem As UserAccess
Set usracItem = ActiveSheet.Protection.AllowEditRanges(1).Users(Index:=1)