Cómo: Llamar a una biblioteca de clases de Visual Basic .NET desde Visual Basic para Aplicaciones en Microsoft Office

Resumen

Utilice a esta guía paso a paso para llamar a una biblioteca de clases .NET desde Visual Basic para Aplicaciones. Este ejemplo muestra cómo un Visual Basic para Aplicaciones, el programa puede utilizar una biblioteca de clases de Visual Basic .NET para cifrar y descifrar una cadena. Puede utilizar el espacio de nombres cryptography, incluida en el.NET Framework, para el cifrado y descifrado.

Crear la biblioteca de clases de Visual Basic .NET

  1. Inicie Microsoft Visual Studio. NET. En el menú archivo, elija nuevo y, a continuación, haga clic en proyecto. En Proyectos de Visual Basic, seleccione Biblioteca de clases. Nombre de la clase CryptoClass y haga clic en Aceptar. Class1 se crea de forma predeterminada.
  2. Reemplace el contenido de Class1 con el código siguiente:

    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


    Nota: Puede utilizar el Generador GUID para generar nuevos GUID para el ClassId, InterfaceId y EventsId. Para generar nuevos GUID, haga clic en Crear GUID en el menú Herramientas .
  3. En Propiedades del proyecto, seleccione Propiedades de configuración. Haga clic en Generar y, a continuación, seleccione la casilla de verificación registrar para interoperabilidad COM. Haga clic en Aceptar.
  4. En el menú Generar , haga clic en Generar solución para crear la DLL.

Crear un Visual Basic para Aplicaciones Macro llamar a la biblioteca de clases .NET

  1. Inicie Microsoft Excel. Presione ALT+F11 para iniciar el Editor de Visual Basic.
  2. En el menú Insertar , haga clic en módulo para insertar un módulo en blanco.
  3. En el menú Herramientas , haga clic en referencias. Agregue una referencia a la biblioteca CryptoClass y haga clic en Aceptar.
  4. Escriba o pegue el código siguiente en la ventana código de 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

Probar el código

  1. En el menú Herramientas , haga clic en Macros. En la lista de macros, haga clic en TestCryptoy, a continuación, haga clic en Ejecutar.
  2. Si aparece un cuadro de mensaje mostrando la cadena cifrada, haga clic en Aceptar. Aparece un segundo cuadro de mensaje mostrando la cadena descifrada.
  3. Si la biblioteca de clases debe estar registrado en otro equipo que ejecuta.NET Framework, copie el archivo DLL en el sistema y ejecute el siguiente comando:
    Regasm CryptoClass.dll /tlb:CryptoClass.tlb

Referencias

Para obtener información adicional, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:

301070 Cómo: cifrar y descifrar un archivo mediante Visual Basic .NET

Para obtener más información, consulte el siguiente sitio Web de Microsoft Developer Network (MSDN):
Propiedades

Id. de artículo: 317535 - Última revisión: 17 ene. 2017 - Revisión: 1

Comentarios