Como lenguaje de programación utilizado en los productos de Microsoft Office, VBA es realmente muy poderoso, gracias al hecho de que hereda muchas de las excelentes tradiciones de Visual Basic. Por ejemplo, podemos introducir clases en proyectos de VBA como la biblioteca VB 6 o el control ActiveX. . Por supuesto, los componentes o controles que usa en VB 6 también se pueden usar en VBA, como el componente de entrada de fecha. VBA es compatible con ADO, lo que también significa que podemos operar bases de datos en VBA, incluidos SQL Server, Access, etc. Debido a esto, puede intentar escribir un programa VBA en Excel para usar Excel como middleware para la sincronización de datos. Este middleware se puede usar para sincronizar los datos en la aplicación y la base de datos en segundo plano, y realizar algún procesamiento en ella. ¡Se puede hacer! Hice un ejemplo de este tipo en un proyecto anterior, e incluso sincronizamos datos entre SQL Server y Sharepoint List a través de Excel (presentaré esto en algunos capítulos posteriores). ADO también es muy poderoso. Podemos ejecutar scripts de Windows en él. A menudo se usa para administrar AD de Windows Server, como atravesar cuentas en AD, modificar cuentas en AD en lotes, etc. puede usar el Bloc de notas para escribir un script vbs en Windows y luego usarlo directamente para administrar AD en su servidor. Por supuesto, según consideraciones de seguridad, estos requieren permisos de ejecución adecuados. Estas tareas también se pueden completar a través de VBA, y en Excel encontrará que a veces es muy conveniente, como tomar prestada la interfaz de usuario existente de Excel para mostrar los datos que se están operando y generar gráficos basados en los datos consultados; modificar datos; facilidad para recorrer y organizar datos, etc. Daré un ejemplo a continuación. Agregue un botón ActiveX a una nueva hoja y agregue el siguiente código. Private Sub CommandButton1_Click() En caso de error Reanudar siguiente constante ADS_SCOPE_SUBTREE = 2 Establecer objConnection = CreateObject (ADODB.Connection) Establecer objCommand = CreateObject(ADODB.Command) objConnection.Provider = ADsDSOObject objConnection.Open Proveedor de Active Directory Establecer objCommand.ActiveConnection = objConnection objCommand.Properties(Tamaño de página) = 1000 objCommand.Properties(Searchscope) = ADS_SCOPE_SUBTREE objCommand.CommandText = _ SELECCIONE Nombre FROM 'LDAP://dc=XXX,dc=com' WHERE objectCategory='user' 'busca todos los usuarios del domn XXX Establecer objRecordSet = objCommand.Execute objRecordSet.MoveFirst Dim currCell As Range Set currCell = Range(A1) Hacer hasta objRecordSet.EOF currCell.Value = objRecordSet.fields(Name).Value Set currCell = currCell.Offset(1, 0) objRecordSet.MoveNext Loop End Sub En el código, utilicé un nombre de dominio imaginario XXX. Los lectores pueden cambiarlo por un nombre de dominio real si quieren probar. Usamos ADO para realizar una consulta de usuario en el dominio especificado y enviar los nombres de todos los usuarios en el dominio a la primera columna de la hoja actual en Excel. A continuación se muestra una captura de pantalla parcial de los resultados de salida. Con respecto a cómo operar AD a través de scripts, los lectores pueden consultar la documentación oficial de Microsoft. Si se permiten los permisos, modifique ligeramente el código anterior y podrá modificar completamente las cuentas en AD en lotes. En vista del entorno de red de la empresa, no es así. Es conveniente probarlo aquí. Los lectores pueden probarlo ellos mismos si tienen las condiciones.