SO WIRD'S GEMACHT: Aufrufen einer Visual Basic .NET-Klassenbibliothek aus Visual Basic für Applikationen in Microsoft Office

SPRACHE AUSWÄHLEN SPRACHE AUSWÄHLEN
Artikel-ID: 317535 - Produkte anzeigen, auf die sich dieser Artikel bezieht
Dieser Artikel ist eine Übersetzung des folgenden englischsprachigen Artikels der Microsoft Knowledge Base:
317535 HOW TO: Call a Visual Basic .NET Class Library from Visual Basic for Applications in Microsoft Office
Bitte beachten Sie: Bei diesem Artikel handelt es sich um eine Übersetzung aus dem Englischen. Es ist möglich, dass nachträgliche Änderungen bzw. Ergänzungen im englischen Originalartikel in dieser Übersetzung nicht berücksichtigt sind. Die in diesem Artikel enthaltenen Informationen basieren auf der/den englischsprachigen Produktversion(en). Die Richtigkeit dieser Informationen in Zusammenhang mit anderssprachigen Produktversionen wurde im Rahmen dieser Übersetzung nicht getestet. Microsoft stellt diese Informationen ohne Gewähr für Richtigkeit bzw. Funktionalität zur Verfügung und übernimmt auch keine Gewährleistung bezüglich der Vollständigkeit oder Richtigkeit der Übersetzung.
Alles erweitern | Alles schließen

Auf dieser Seite

Zusammenfassung

Dieser Artikel beschreibt Schritt für Schritt, wie eine .NET-Klassenbibliothek von Visual Basic für Applikationen aus aufgerufen werden kann. Das folgende Beispiel zeigt, wie ein Visual Basic für Applikationen-Programm eine Visual Basic .NET-Klassenbibliothek verwenden kann, um eine Zeichenfolge zu verschlüsseln und zu entschlüsseln. Für die Verschlüsselung/Entschlüsselung können Sie den Kryptografie-Namespace verwenden, der im .NET Framework enthalten ist.

Visual Basic .NET-Klassenbibliothek erstellen

  1. Starten Sie Microsoft Visual Studio .NET. Zeigen Sie im Menü Datei auf Neu, und klicken Sie dann auf Projekt. Unter Visual Basic-Projekte wählen Sie die Option Klassenbibliothek. Geben Sie der Klasse den Namen CryptoClass, und klicken Sie dann auf OK. Jetzt wird standardmäßig "Class1" erstellt.
  2. Ersetzen Sie den Inhalt von Class1 durch den folgenden Code:

    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
    						

    Hinweis: Mit dem GUID-Generator können Sie neue GUIDs für "ClassId", "InterfaceId" und "EventsId" erzeugen. Klicken Sie im Menü Extras auf GUID erstellen, um neue GUIDs erstellen zu lassen.
  3. Wählen Sie unter Projekteigenschaften die Option Konfigurationseigenschaften. Klicken Sie auf Erstellen, und aktivieren Sie dann das Kontrollkästchen Für COM-Interop registrieren. Klicken Sie auf OK.
  4. Klicken Sie im Menü Erstellen auf Projektmappe erstellen, um die DLL zu generieren.

Erstellen eines Visual Basic für Applikationen-Makros zum Aufrufen der .NET-Klassenbibliothek

  1. Starten Sie Microsoft Excel. Drücken Sie [ALT]+[F11], um den Visual Basic-Editor zu starten.
  2. Klicken Sie im Menü Einfügen auf Modul, um ein leeres Modul einzufügen.
  3. Klicken Sie im Menü Extras auf Verweise. Fügen Sie einen Verweis auf die CryptoClass-Bibliothek hinzu, und klicken Sie anschließend auf OK.
  4. Geben oder fügen Sie den folgenden Code in das Codefenster von "Module1" ein:
    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
    					

Den Code testen

  1. Klicken Sie im Menü Extras auf Makros. Klicken Sie in der Liste der Makros auf TestCrypto, und klicken Sie anschließend auf Ausführen.
  2. Falls ein Meldungsfeld mit der verschlüsselten Zeichenfolge angezeigt wird, klicken Sie auf OK. Jetzt wird ein Meldungsfeld mit der entschlüsselten Zeichenfolge angezeigt.
  3. Falls die Klassenbibliothek auf einem anderen Computer registriert werden muss, auf dem .NET Framework ausgeführt wird, kopieren Sie die DLL auf diesen Computer, und führen Sie dann den folgenden Befehl aus:
    regasm CryptoClass.dll /tlb:CryptoClass.tlb

Informationsquellen

Weitere Informationen finden Sie im folgenden Artikel der Microsoft Knowledge Base:
301070 Wie Verschlüsseln und Entschlüsseln einer Datei, indem Visual Basic .NET oder Visual Basic 2005 verwendet
Weitere Informationen finden Sie auf folgender MSDN-Website:
http://msdn2.microsoft.com/de-de/library/aa188489(office.10).aspx

Eigenschaften

Artikel-ID: 317535 - Geändert am: Mittwoch, 30. Mai 2007 - Version: 8.4
Die Informationen in diesem Artikel beziehen sich auf:
  • 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
Keywords: 
kbcrypt kbsecurity kbhowtomaster KB317535
Microsoft stellt Ihnen die in der Knowledge Base angebotenen Artikel und Informationen als Service-Leistung zur Verfügung. Microsoft übernimmt keinerlei Gewährleistung dafür, dass die angebotenen Artikel und Informationen auch in Ihrer Einsatzumgebung die erwünschten Ergebnisse erzielen. Die Entscheidung darüber, ob und in welcher Form Sie die angebotenen Artikel und Informationen nutzen, liegt daher allein bei Ihnen. Mit Ausnahme der gesetzlichen Haftung für Vorsatz ist jede Haftung von Microsoft im Zusammenhang mit Ihrer Nutzung dieser Artikel oder Informationen ausgeschlossen.

Ihr Feedback an uns

 

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