En tant que langage de script utilisé dans les produits Microsoft Office, VBA est en fait très puissant, grâce au fait qu'il hérite de nombreuses belles traditions de Visual Basic. Par exemple, nous pouvons introduire des classes dans des projets VBA comme la bibliothèque VB 6 ou le contrôle ActiveX. . Bien entendu, les composants ou contrôles que vous utilisez dans VB 6 peuvent également être utilisés dans VBA, comme le composant de saisie de date. VBA prend en charge ADO, ce qui signifie également que nous pouvons exploiter des bases de données en VBA, notamment SQL Server, Access, etc. Pour cette raison, vous pouvez essayer d'écrire un programme VBA dans Excel pour utiliser Excel comme middleware pour la synchronisation des données. Ce middleware peut être utilisé pour synchroniser les données de l'application et de la base de données en arrière-plan et y effectuer certains traitements. C’est possible ! J'ai fait un tel exemple dans un projet précédent, et nous avons même synchronisé les données entre SQL Server et Sharepoint List via Excel (je le présenterai dans certains chapitres suivants). ADO est également très puissant. Nous pouvons y exécuter des scripts Windows. Il est souvent utilisé pour gérer AD de Windows Server, comme parcourir des comptes dans AD, modifier des comptes dans AD par lots, etc. vous pouvez utiliser le Bloc-notes pour écrire un script vbs sous Windows, puis l'utiliser directement pour gérer AD sur votre serveur. Bien entendu, pour des raisons de sécurité, ceux-ci nécessitent des autorisations d'exécution appropriées. Ces tâches peuvent également être effectuées via VBA, et dans Excel, vous constaterez que cela est parfois très pratique, comme emprunter l'interface utilisateur existante d'Excel pour afficher les données exploitées ; modifier les données ; facilité de parcours et d'organisation des données, etc... Je vais donner un exemple ci-dessous. Ajoutez un bouton ActiveX à une nouvelle feuille et ajoutez le code suivant. Sous-commande privé CommandButton1_Click() en cas d'erreur Reprendre la const suivante ADS_SCOPE_SUBTREE = 2 Définir objConnection = CreateObject (ADODB.Connection) Définir objCommand = CreateObject (ADODB.Command) objConnection.Provider = ADsDSOObject objConnection.Open Fournisseur d'Active Directory Définir objCommand.ActiveConnection = objConnection objCommand.Properties(Page Size) = 1000 objCommand.Properties(Searchscope) = ADS_SCOPE_SUBTREE objCommand.CommandText = _ SELECT Name FROM 'LDAP://dc=XXX,dc=com' WHERE objectCategory='user' 'rechercher tous les utilisateurs du domn XXX Définir objRecordSet = objCommand.Execute objRecordSet.MoveFirst Dim currCell As Range Set currCell = Range(A1) Do Until objRecordSet.EOF currCell.Value = objRecordSet.fields(Name).Value Set currCell = currCell.Offset(1, 0) objRecordSet.MoveNext Loop End Sub Dans le code, j'ai utilisé un nom de domaine imaginaire XXX. Les lecteurs peuvent le changer en nom de domaine réel s'ils souhaitent tester. Nous avons utilisé ADO pour effectuer une requête utilisateur sur le domaine spécifié et afficher les noms de tous les utilisateurs du domaine dans la première colonne de la feuille actuelle dans Excel. Vous trouverez ci-dessous une capture d'écran partielle des résultats de sortie. Concernant la façon d'utiliser AD via des scripts, les lecteurs peuvent se référer à la documentation officielle de Microsoft. Si les autorisations sont autorisées, modifiez légèrement le code ci-dessus et vous pourrez modifier complètement les comptes dans AD par lots. Compte tenu de l'environnement réseau de l'entreprise, ce n'est pas le cas. pratique à tester ici. Les lecteurs peuvent l’essayer eux-mêmes s’ils en ont les conditions.