COMO: Chamada uma biblioteca de classes do Visual Basic .NET a partir do Visual Basic for Applications no Microsoft Office

Traduções de Artigos Traduções de Artigos
Artigo: 317535 - Ver produtos para os quais este artigo se aplica.
Expandir tudo | Reduzir tudo

Nesta página

Sumário

Utilize este guia passo-a-passo para chamar uma biblioteca de classes .NET a partir do Visual Basic for Applications. Este exemplo mostra como um programa do Visual Basic for Applications pode utilizar uma biblioteca de classe do Visual Basic .NET para encriptar e desencriptar uma cadeia. Pode utilizar o espaço de nomes criptografia, incluído no .NET Framework, para a encriptação/desencriptação.

Criar a biblioteca de classes do Visual Basic .NET

  1. Inicie o Microsoft Visual Studio NET.. No menu ficheiro , aponte para Novo e, em seguida, clique em projecto . Em Projectos do Visual Basic , seleccione a Biblioteca de classes . Nome da classe CryptoClass e clique em OK . Aula1 é criado por predefinição.
  2. Substitua o conteúdo de Aula1 com o seguinte código:

    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 Pode utilizar o gerador GUID para gerar novos GUID para o ID de classe InterfaceId e EventsId. Para gerar novos GUID, clique em Criar GUID no menu Ferramentas .
  3. Propriedades do projecto , seleccione Propriedades da configuração . Clique em criar e seleccione o registo para interoperabilidade caixa de verificação. Clique em OK .
  4. No menu criar , clique em Criar solução para criar a DLL.

Crie uma Visual Basic for Applications Macro chamar a biblioteca de classes .NET

  1. Inicie o Microsoft Excel . Prima ALT+F11 para iniciar o Editor do Visual Basic.
  2. No menu Inserir , clique em módulo para inserir um módulo em branco.
  3. No menu Ferramentas , clique em References . Adicione uma referência à biblioteca CryptoClass e clique em OK .
  4. Escreva ou cole o seguinte código na janela de código Módulo1:
    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
    					

Testar o código

  1. No menu Ferramentas , clique em macros . Na lista de macros, clique em TestCrypto e, em seguida, clique em Executar .
  2. Se uma caixa de mensagem aparecer mostrando a cadeia encriptada, clique em OK . Aparece uma segunda caixa de mensagem com a cadeia descodificada.
  3. Se a biblioteca de classes necessitar de ser registado noutro computador com o .NET Framework, copie a DLL para o efeito ao sistema e execute o seguinte comando:
    RegAsm CryptoClass.dll /tlb:CryptoClass.tlb

Referências

Para obter informações adicionais, clique no número de artigo que se segue para visualizar o artigo na Microsoft Knowledge Base:
301070COMO: Encriptar e desencriptar um ficheiro utilizando o Visual Basic .NET
Para mais informações, consulte o seguinte Web site da Microsoft Developer Network (MSDN):
http://msdn2.microsoft.com/en-us/library/aa188489(office.10).aspx

Propriedades

Artigo: 317535 - Última revisão: 29 de março de 2007 - Revisão: 8.5
A informação contida neste artigo aplica-se a:
  • Microsoft Office Access 2003
  • Microsoft Access 2002 Standard Edition
  • Microsoft Office Excel 2003
  • Microsoft Excel 2002 Standard Edition
  • Microsoft Office PowerPoint 2003
  • Microsoft PowerPoint 2002 Standard Edition
  • Microsoft Office Word 2003
  • Microsoft Visual Studio .NET 2003 Professional Edition
  • Microsoft Word 2002 Standard Edition
  • Microsoft Visual Studio .NET 2002 Professional Edition
Palavras-chave: 
kbmt kbcrypt kbsecurity kbhowtomaster KB317535 KbMtpt
Tradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine translation ou MT), não tendo sido portanto revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 317535

Submeter comentários

 

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