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

Traduções deste artigo Traduções deste artigo
ID do artigo: 317535 - Exibir os produtos aos quais esse artigo se aplica.
Expandir tudo | Recolher tudo

Neste artigo

Sumário

Use 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 usar uma biblioteca de classe do Visual Basic .NET para criptografar e descriptografar uma seqüência de caracteres. Você pode usar o namespace de criptografia, incluído no .NET Framework, para a criptografia/descriptografia.

Criar biblioteca de classes .NET Visual Basic

  1. Inicie o Microsoft Visual Studio NET.. No menu arquivo , aponte para novo e, em seguida, clique em Project . Em Projetos do Visual Basic , selecione Class Library . Nome da classe CryptoClass e clique em OK . Class1 é criado por padrão.
  2. Substitua o conteúdo do Class1 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
    						

    Observação Você pode usar o gerador de GUID para gerar novos GUIDs de identificação de classe, parâmetros InterfaceId e EventsId. Para gerar novos GUIDs, clique em Criar GUID no menu Ferramentas .
  3. Propriedades do projeto , selecione Propriedades de configuração . Clique em criar e selecione registrar para interoperabilidade COM caixa de seleção. Clique em OK .
  4. No menu Build , clique em Build Solution para criar a DLL.

Criar um Visual Basic for Applications Macro chamar a biblioteca de classes .NET

  1. Inicie o Microsoft Excel . Pressione 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 referências . Adicione uma referência à biblioteca CryptoClass e clique em OK .
  4. Digite ou cole o código a seguir na janela de código 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
    					

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 for exibida uma caixa de mensagem mostrando a seqüência criptografada, clique em OK . Será exibida uma segunda caixa de mensagem mostrando a seqüência descriptografada.
  3. Se a biblioteca de classes precisa ser registrado em outro computador executando o .NET Framework, copie a DLL para o sistema e execute o seguinte comando:
    RegAsm CryptoClass.dll /tlb:CryptoClass.tlb

Referências

Para obter informações adicionais, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
301070COMO: Criptografar e descriptografar um arquivo usando o Visual Basic .NET
Para obter mais informações, consulte o seguinte site da Microsoft Developer Network (MSDN):
http://msdn2.microsoft.com/en-us/library/aa188489(office.10).aspx

Propriedades

ID do artigo: 317535 - Última revisão: quinta-feira, 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 traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes 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