SO WIRD´S GEMACHT: Erstellen eines Excel-Makros mithilfe der Automatisierung von Visual Basic .NET

SPRACHE AUSWÄHLEN SPRACHE AUSWÄHLEN
Artikel-ID: 303871 - Produkte anzeigen, auf die sich dieser Artikel bezieht
Dieser Artikel wurde zuvor veröffentlicht unter D303871
Dieser Artikel ist eine Übersetzung des folgenden englischsprachigen Artikels der Microsoft Knowledge Base:
303871 HOW TO: Create an Excel Macro by Using Automation from Visual Basic .NET
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 Sie Microsoft Excel von Microsoft Visual Basic .NET aus so automatisieren, dass Sie eine Arbeitsmappe erstellen können, die ein neues Makro enthält, das mit einer CommandBar-Schaltfläche (Befehlsleistenschaltfläche) verknüpft ist.

Anleitung zum Erstellen der Visual Basic .NET-Beispielanwendung

  1. Starten Sie Microsoft Visual Basic .NET.
  2. Klicken Sie im Menü Datei auf Neu, und klicken Sie anschließend auf Projekt. Wählen Sie aus den Visual Basic-Projekttypen die Option Windows-Anwendung aus. Form1 wird standardmäßig erstellt.
  3. Fügen Sie die Verweise auf die Microsoft Excel Object Library, die Microsoft Office Object Library und die Microsoft Visual Basic for Applications Extensibility Library hinzu. Gehen Sie hierzu folgendermaßen vor:
    1. Klicken Sie im Menü Projekt auf Verweis hinzufügen.
    2. Gehen Sie zu dem Eintrag für die Microsoft Excel Object Library auf der Registerkarte COM, und klicken Sie anschließend auf Auswählen.

      Hinweis: Microsoft Office 2003 beinhaltet Primäre Interop-Assemblys (Primary Interop Assemblies = PIAs). In Microsoft Office XP sind zwar keine PIAs enthalten, Sie können diese jedoch bei Bedarf downloaden. Weitere Informationen zu Office XP-PIAs finden Sie im folgenden Artikel der Microsoft Knowledge Base:
      328912 INFO: Microsoft Office XP PIAs Are Available for Download
    3. Wählen Sie die Microsoft Visual Basic für Applikationen-Erweiterungsbibliothek (Microsoft Visual Basic for Applications Extensibility Library) aus, und klicken Sie anschließend auf Auswählen.
    4. Klicken Sie im Dialogfeld Verweise hinzufügen auf OK, um Ihre Auswahl zu bestätigen.
  4. Klicken Sie im Menü Ansicht auf Toolbox, um die Toolbox anzeigen zu lassen, und fügen Sie Form1 eine Schaltfläche hinzu.
  5. Doppelklicken Sie auf Button1 (Schaltfläche 1). Beim onClick-Ereignis (Beim Klicken) für Button1 (Schaltfläche 1) wird das Codefenster geöffnet. Fügen Sie oberhalb von "Public Class Form1" (Öffentliche Klasse Form1) die folgende Zeile hinzu:
       Imports Office = Microsoft.Office.Core
    					
  6. Fügen Sie im Codefenster den folgenden Code hinzu:
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
          System.EventArgs) Handles Button1.Click
       Dim oExcel As Excel.Application
       Dim oBook As Excel.Workbook
       Dim oModule As VBIDE.VBComponent
       Dim oCommandBar As Office.CommandBar
       Dim oCommandBarButton As Office.CommandBarControl
       Dim sCode As String
    
       ' Create an instance of Excel, and show it to the user.
       oExcel = New Excel.Application()
    
       ' Add a workbook.
       oBook = oExcel.Workbooks.Add
    
       ' Create a new VBA code module.
       oModule = oBook.VBProject.VBComponents.Add(VBIDE.vbext_ComponentType.vbext_ct_StdModule)
    
       sCode = "sub VBAMacro()" & vbCr & _
          "   msgbox ""VBA Macro called"" " & vbCr & _
          "end sub"
    
       ' Add the VBA macro to the new code module.
       oModule.CodeModule.AddFromString(sCode)
    
       Try
          ' Create a new toolbar, and show it to the user.
          oCommandBar = oExcel.CommandBars.Add("VBAMacroCommandBar")
          oCommandBar.Visible = True
    
          ' Create a new button on the toolbar.
          oCommandBarButton = oCommandBar.Controls.Add(Office.MsoControlType.msoControlButton)
          ' Assign a macro to the button.
          oCommandBarButton.OnAction = "VBAMacro"
          ' Set the caption of the button.
          oCommandBarButton.Caption = "Call VBAMacro"
          ' Set the icon on the button to a picture.
          oCommandBarButton.FaceId = 2151
       Catch exc As Exception
             MessageBox.Show("VBAMacroCommandBar already exists.", "Error")
       End Try
    
       oExcel.Visible = True
       ' Set the UserControl property so that Excel does not shut down.
       oExcel.UserControl = True
    
       ' Release the variables.
       oCommandBarButton = Nothing
       oCommandBar = Nothing
       oModule = Nothing
       oBook = Nothing
       oExcel = Nothing
    
       ' Force garbage collection.
       GC.Collect()
    
    End Sub
    					
  7. Fügen Sie ganz oben in "Form1.vb" den folgenden Code ein:
    Imports Office = Microsoft.Office.Core
    Imports Microsoft.Office.Interop
    Imports VBIDE = Microsoft.Vbe.Interop
    					
  8. Drücken Sie die Taste [F5], um das Programm erstellen und dann ausführen zu lassen.
  9. Klicken Sie auf Button1, um Excel zu starten, fügen Sie den Visual Basic für Applikationen (VBA)-Code ein, und fügen Sie anschließend ein CommandBar-Steuerelement (Befehlsleistensteuerelement) hinzu. Klicken Sie auf die Schaltfläche in der Befehlsleiste, um das VBA-Makro ausführen zu lassen.

Zusätzliche Hinweise für Office XP

Microsoft Office XP- und Microsoft Office 2003-Anwendungen verfügen über eine Sicherheitsoption, die den programmatischen Zugriff auf das VBA-Objektmodell ermöglicht. Wenn diese Option auf die Standardeinstellung Off (Aus) festgelegt ist, wird beim Ausführen des Beispielcodes eventuell eine Fehlermeldung angezeigt. Weitere Informationen zu dieser Option sowie zum Beheben des Fehlers finden Sie in folgendem Artikel der Microsoft Knowledge Base:
282830 PRB: Programmatic Access to Office XP VBA Project Is Denied

Informationsquellen

Weitere Informationen finden Sie in folgendem Artikel der Microsoft Knowledge Base:
194611 Create and Call an Excel Macro Programmatically from VB

Eigenschaften

Artikel-ID: 303871 - Geändert am: Montag, 16. Februar 2004 - Version: 6.2
Die Informationen in diesem Artikel beziehen sich auf:
  • Microsoft Visual Basic .NET 2003 Standard Edition
  • Microsoft Visual Basic .NET 2002 Standard Edition
  • Microsoft Office Excel 2003
  • Microsoft Excel 2002 Standard Edition
Keywords: 
kbhowtomaster kbautomation kbpia KB303871
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