Sie sind zurzeit offline. Es wird auf die erneute Herstellung einer Internetverbindung gewartet.

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

Der Support für Office 2003 wurde eingestellt

Microsoft stellte am 8. April 2014 den Support für Office 2003 ein. Diese Änderung wirkt sich auf Ihre Softwareupdates und Sicherheitsoptionen aus. Erfahren Sie, was das für Sie bedeutet und wie Sie Ihren Schutz aufrechterhalten können.

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
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.

Zurück zum Anfang

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.CoreImports Microsoft.Office.InteropImports 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.
Zurück zum Anfang

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
Zurück zum Anfang
Informationsquellen
Weitere Informationen finden Sie in folgendem Artikel der Microsoft Knowledge Base:
194611 Create and Call an Excel Macro Programmatically from VB
Zurück zum Anfang
vba macro xl2003
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.
Eigenschaften

Artikelnummer: 303871 – Letzte Überarbeitung: 02/16/2004 09:46:00 – Revision: 6.2

  • Microsoft Visual Basic .NET 2003 Standard Edition
  • Microsoft Visual Basic .NET 2002 Standard Edition
  • Microsoft Office Excel 2003
  • Microsoft Excel 2002 Standard Edition
  • kbhowtomaster kbautomation kbpia KB303871
Feedback