Comment faire pour appeler une bibliothèque de classes Visual Basic .NET à partir de Visual Basic pour Applications dans Microsoft Office

Traductions disponibles Traductions disponibles
Numéro d'article: 317535 - Voir les produits auxquels s'applique cet article
Agrandir tout | Réduire tout

Sommaire

Résumé

Utiliser ce guide pas-à-pas pour appeler une bibliothèque de classe .NET à partir de Visual Basic pour Applications. Cet exemple indique comment un programme Visual Basic pour applications peuvent utiliser une bibliothèque de classe Visual Basic.NET pour crypter et décrypter une chaîne. Vous pouvez utiliser l'espace de noms cryptographie, inclus dans le .NET Framework, pour le chiffrement/déchiffrement.

Créer la bibliothèque de classes Visual Basic .NET

  1. Démarrez Microsoft Visual Studio .NET. Dans le menu Fichier , pointez sur Nouveau , puis cliquez sur projet . Sous projets Visual Basic , sélectionnez la bibliothèque de classes . Nom de la classe CryptoClass et cliquez sur OK . Class1 est créé par défaut.
  2. Remplacez le contenu de Class1 par le code suivant :

    Imports System.Security.Cryptography
    
    <ComClass(Class1.ClassId, Class1.InterfaceId, Class1.EventsId)> Public Class Class1
        Public Const ClassId As String = "98349785-8BE2-4604-848D-F5B103D61715"
        Public Const InterfaceId As String = "36613EE9-125F-493d-9968-771E18C2226A"
        Public Const EventsId As String = "A036F02F-F87E-4548-A536-7DD7EA8E62B5"
    
        Const sKey As String = "MyKey"
    
        Public Function EncryptTripleDES(ByVal sIn As String) As String
            Dim DES As New TripleDESCryptoServiceProvider()
            Dim hashMD5 As New MD5CryptoServiceProvider()
    
            ' Compute the MD5 hash.
            DES.Key = hashMD5.ComputeHash(System.Text.ASCIIEncoding.ASCII.GetBytes(sKey))
            ' Set the cipher mode.
            DES.Mode = CipherMode.ECB
            ' Create the encryptor.
            Dim DESEncrypt As ICryptoTransform = DES.CreateEncryptor()
            ' Get a byte array of the string.
            Dim Buffer As Byte() = System.Text.ASCIIEncoding.ASCII.GetBytes(sIn)
            ' Transform and return the string.
            Return Convert.ToBase64String(DESEncrypt.TransformFinalBlock(Buffer, 0, Buffer.Length))
        End Function
    
        Public Function DecryptTripleDES(ByVal sOut As String) As String
            Dim DES As New TripleDESCryptoServiceProvider()
            Dim hashMD5 As New MD5CryptoServiceProvider()
    
            ' Compute the MD5 hash.
            DES.Key = hashMD5.ComputeHash(System.Text.ASCIIEncoding.ASCII.GetBytes(sKey))
            ' Set the cipher mode.
            DES.Mode = CipherMode.ECB
            ' Create the decryptor.
            Dim DESDecrypt As ICryptoTransform = DES.CreateDecryptor()
            Dim Buffer As Byte() = Convert.FromBase64String(sOut)
            ' Transform and return the string.
            Return System.Text.ASCIIEncoding.ASCII.GetString(DESDecrypt.TransformFinalBlock(Buffer, 0, Buffer.Length))
        End Function
    End Class
    						

    note Vous pouvez utiliser le Générateur de GUID pour générer de nouveau GUID pour les ID classe InterfaceId et EventsId. Pour générer des GUID nouveau, cliquez sur Créer un GUID dans le menu Outils .
  3. À partir des propriétés du projet , sélectionnez Propriétés de configuration . Cliquez sur Créer , puis sélectionnez le Registre pour COM Interop case à cocher. Cliquez sur OK .
  4. Dans le menu Générer , cliquez sur Générer la solution pour créer la DLL.

Créer une Visual Basic pour applications macro appeler la bibliothèque de classes .NET

  1. Démarrez Microsoft Excel . Appuyez sur ALT + F11 pour démarrer Visual Basic Editor.
  2. Dans le menu Insertion , cliquez sur module pour insérer un module vide.
  3. Dans le menu Outils , cliquez sur Références . Ajouter une référence à la bibliothèque CryptoClass et cliquez sur OK .
  4. Tapez ou collez le code suivant dans la fenêtre de code Module1 :
    Sub TestCrypto()
      Dim oCrypto As New CryptoClass.Class1
      Dim sCrypt As String
      
      sCrypt = oCrypto.EncryptTripleDES("This is a test")
      MsgBox "Encrypted text = " & sCrypt
      MsgBox "Decrypted text = " & oCrypto.DecryptTripleDES(sCrypt)
    End Sub
    					

Tester le code

  1. Dans le menu Outils , cliquez sur macros . Dans la liste des macros, cliquez sur TestCrypto , puis cliquez sur Exécuter .
  2. Si une boîte de message montrant la chaîne cryptée, cliquez sur OK . Une deuxième boîte de message s'affiche montrant la chaîne déchiffrée.
  3. Si la bibliothèque de classe doit être enregistré sur un autre ordinateur exécutant .NET Framework, copiez le DLL dans le système et exécutez la commande suivante :
    Regasm CryptoClass.dll /tlb:CryptoClass.tlb

Références

Pour plus d'informations, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances Microsoft :
301070 Comment faire pour chiffrer et déchiffrer un fichier à l'aide de Visual Basic .NET
Pour plus d'informations, reportez-vous au site Web à le) MSDN (Microsoft Developer Network suivante :
http://msdn2.microsoft.com/en-us/library/aa188489(office.10).aspx

Propriétés

Numéro d'article: 317535 - Dernière mise à jour: jeudi 29 mars 2007 - Version: 8.5
Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
  • Microsoft Office Access 2003
  • Microsoft Access 2002
  • Microsoft Office Excel 2003
  • Microsoft Excel 2002
  • Microsoft Office PowerPoint 2003
  • Microsoft PowerPoint 2002 Standard
  • Microsoft Office Word 2003
  • Microsoft Visual Studio .NET 2003 Professional
  • Microsoft Word 2002 Standard Edition
  • Microsoft Visual Studio .NET 2002 Professional Edition
Mots-clés : 
kbmt kbcrypt kbsecurity kbhowtomaster KB317535 KbMtfr
Traduction automatique
IMPORTANT : Cet article est issu du système de traduction automatique mis au point par Microsoft (http://support.microsoft.com/gp/mtdetails). Un certain nombre d?articles obtenus par traduction automatique sont en effet mis à votre disposition en complément des articles traduits en langue française par des traducteurs professionnels. Cela vous permet d?avoir accès, dans votre propre langue, à l?ensemble des articles de la base de connaissances rédigés originellement en langue anglaise. Les articles traduits automatiquement ne sont pas toujours parfaits et peuvent comporter des erreurs de vocabulaire, de syntaxe ou de grammaire (probablement semblables aux erreurs que ferait une personne étrangère s?exprimant dans votre langue !). Néanmoins, mis à part ces imperfections, ces articles devraient suffire à vous orienter et à vous aider à résoudre votre problème. Microsoft s?efforce aussi continuellement de faire évoluer son système de traduction automatique.
La version anglaise de cet article est la suivante: 317535
L'INFORMATION CONTENUE DANS CE DOCUMENT EST FOURNIE PAR MICROSOFT SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE. L'UTILISATEUR ASSUME LE RISQUE DE L'UTILISATION DU CONTENU DE CE DOCUMENT. CE DOCUMENT NE PEUT ETRE REVENDU OU CEDE EN ECHANGE D'UN QUELCONQUE PROFIT.

Envoyer des commentaires

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com