Verwendung der Automatisierung zum Erstellen von Office-Befehlsleisten und Steuerelemente mit Visual Basic .NET

SPRACHE AUSWÄHLEN SPRACHE AUSWÄHLEN
Artikel-ID: 303017 - Produkte anzeigen, auf die sich dieser Artikel bezieht
Alles erweitern | Alles schließen

Zusammenfassung

Dieser Artikel veranschaulicht das Automatisieren von Excel eine Befehlsleiste mit Schaltflächen, Dropdown-Listenfelder, Kombinationsfelder und Popup-Menüs erstellen.

Weitere Informationen

Die Anwendung Visual Basic .NET abfängt und antwortet auf den Ereignissen Click und ändern, die die verschiedenen Steuerelemente der Befehlsleiste ausgelöst. Obwohl in diesem Beispiel Excel als Host-Anwendung verwendet wird, funktionieren der Befehl Barcode in einer Office-Anwendungen.

Visual Basic .NET-Automatisierungsclient erstellen

  1. Starten Sie Microsoft Visual Studio .NET. Im Menü Datei klicken Sie auf neu , und klicken Sie dann auf Projekt . Klicken Sie unter Projekttypen auf Visual Basic-Projekte und dann klicken Sie unter Vorlagen auf Windows-Anwendung . Form1 wird standardmäßig erstellt.
  2. Fügen Sie einen Verweis auf der Microsoft Excel-Objektbibliothek und die Microsoft Office Object Library . Gehen Sie hierzu folgendermaßen vor:
    1. Klicken Sie im Menü Projekt auf Verweis hinzufügen .
    2. Finden Sie auf der Registerkarte COM im Microsoft Excel , und klicken Sie auf auswählen .
      Hinweis: Microsoft Office 2003 beinhaltet Primäre Interop-Assemblys (Primary Interop Assembly, PIA). In Microsoft Office XP sind zwar keine PIAs enthalten, Sie können diese jedoch bei Bedarf downloaden. Zusätzliche Informationen zu Office XP-PIAs finden Sie die Artikel der Microsoft Knowledge Base:
      328912INFO: Microsoft Office XP-PIAs für stehen zum Download
    3. Klicken Sie auf OK im Dialogfeld Verweis hinzufügen , um Ihre Auswahl zu bestätigen.
  3. Klicken Sie im Menü Ansicht auf Sie Toolbox , um die Toolbox anzuzeigen, und fügen Sie Form1 eine Schaltfläche hinzu.
  4. Doppelklicken Sie auf Button1 . Das Codefenster wird an das OnClick -Ereignis für Button1 geöffnet. Fügen Sie die folgenden am Anfang von Form1.vb:
    Imports Office = Microsoft.Office.Core
    Imports Excel = Microsoft.Office.Interop.Excel
    					
  5. Ersetzen Sie in das Codefenster den folgenden Code
    Private Sub Button1_Click(ByVal sender As System.Object, _
                              ByVal e As System.EventArgs) _
                              Handles Button1.Click
    End Sub
    					
    mit:
    ' Declare variables.
    Dim WithEvents oButton As Office.CommandBarButton
    Dim WithEvents oEdit As Office.CommandBarComboBox
    Dim WithEvents oDrop As Office.CommandBarComboBox
    Dim WithEvents oCombo As Office.CommandBarComboBox
    Dim WithEvents oPopupButton As Office.CommandBarButton
    
    
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        ' Declare variables.
        Dim oExcel As Excel.Application
        Dim oCommandBar As Office.CommandBar
        Dim oPopup As Office.CommandBarPopup
    
        ' Start Excel.
        oExcel = New Excel.Application()
        ' Show Excel and set UserControl.
        oExcel.Visible = True
        oExcel.UserControl = True
        ' Add a new workbook.
        oExcel.Workbooks.Add()
    
        ' Create a new command bar.
        oCommandBar = oExcel.CommandBars.Add("Billiards Sample")
    
        ' Add a button to the command bar.
        oButton = oCommandBar.Controls.Add(Office.MsoControlType.msoControlButton)
        ' Set the caption and face ID.
        oButton.Caption = "New game"
        oButton.FaceId = 1845
    
        ' Add an edit box to the command bar.
        oEdit = oCommandBar.Controls.Add(Office.MsoControlType.msoControlEdit)
        ' Show a vertical separator.
        oEdit.BeginGroup = True
        ' Clear the text and show a caption.
        oEdit.Text = ""
        oEdit.Caption = "Enter your name:"
        oEdit.Style = Office.MsoComboStyle.msoComboLabel
    
        ' Add a combo box to the command bar.
        oCombo = oCommandBar.Controls.Add(Office.MsoControlType.msoControlComboBox)
        ' Add items to the combo box.
        oCombo.AddItem ("Sharky")
        oCombo.AddItem ("Cash")
        oCombo.AddItem ("Lucky")
        ' Set the caption and style.
        oCombo.Caption = "Choose your opponent:"
        oCombo.Style = Office.MsoComboStyle.msoComboLabel
    
        ' Add a drop-down list box to the command bar.
        oDrop = oCommandBar.Controls.Add(Office.MsoControlType.msoControlDropdown)
        ' Add items to the list box.
        oDrop.AddItem ("8 Ball")
        oDrop.AddItem ("9 Ball")
        oDrop.AddItem ("Straight Pool")
        oDrop.AddItem ("Bowlliards")
        oDrop.AddItem ("Snooker")
        ' Set the value to the first in the list.
        oDrop.ListIndex = 1
        ' Set the caption and style.
        oDrop.Caption = "Choose your game:"
        oDrop.Style = Office.MsoComboStyle.msoComboLabel
    
        ' Add a pop-up menu to the command bar.
        oPopup = oCommandBar.Controls.Add(Office.MsoControlType.msoControlPopup)
        ' Add a separator before the pop-up button.
        oPopup.BeginGroup = True
        ' Set the caption.
        oPopup.Caption = "Rack 'em Up!"
        ' Add a button to the pop-up.
        oPopupButton = oPopup.CommandBar.Controls.Add(Office.MsoControlType.msoControlButton)
        ' Change the face ID and caption for the button.
        oPopupButton.FaceId = 643
        oPopupButton.Caption = "Break!"
    
        ' Show the command bar to the user.
        oCommandBar.Visible = True
    End Sub
    
    Private Sub oButton_Click(ByVal Ctrl As Office.CommandBarButton, _
                              ByRef CancelDefault As Boolean) Handles oButton.Click
        ' Reset all values.
        oEdit.Text = ""
        oDrop.ListIndex = 1
        oCombo.Text = ""
        Console.WriteLine ("New game button clicked")
    End Sub
    
    Private Sub oCombo_Change(ByVal Ctrl As Office.CommandBarComboBox) Handles oCombo.Change
        Console.WriteLine ("oCombo_Change event fired -- New opponent = " + Ctrl.Text)
    End Sub
    
    Private Sub oDrop_Change(ByVal Ctrl As Office.CommandBarComboBox) Handles oDrop.Change
        Console.WriteLine ("oDrop_Change event fired -- Game type = " + Ctrl.Text)
    End Sub
    
    Private Sub oEdit_Change(ByVal Ctrl As Office.CommandBarComboBox) Handles oEdit.Change
        Console.WriteLine ("oEdit_Change event fired -- Player's name = " + Ctrl.Text)
    End Sub
    
    Private Sub oPopupButton_Click(ByVal Ctrl As Office.CommandBarButton, _
                                   ByRef CancelDefault As Boolean) Handles oPopupButton.Click
        Dim oRand As System.Random
    
        Console.WriteLine ("oPopupButton_Click event fired")
        ' Create a new random number class.
        oRand = New System.Random()
        Dim sWinner As String
        ' Get a random number and check its range.
        If (oRand.NextDouble() > 0.5) Then
            sWinner = oEdit.Text
        Else
            sWinner = oCombo.Text
        End If
        ' Show a message box to the user.
        MessageBox.Show("Game: " + oDrop.Text + vbCrLf + vbCrLf + "Name: " + oEdit.Text + _
                vbCrLf + "Opponent: " + oCombo.Text + _
                vbCrLf + vbCrLf + "Winner: " + sWinner, "Game Results")
    End Sub
    					
  6. Drücken Sie die Taste [F5], um das Programm erstellen und ausführen zu lassen.
  7. Klicken Sie auf Button1 , starten Sie Excel, fügen Sie eine neue Befehlsleiste und Einfügen von Steuerelementen auf der Befehlsleiste.

Zusätzliche Hinweise für Office XP

Office XP-Anwendungen verfügen über eine Sicherheitsoption, um den programmgesteuerten Zugriff auf das Visual Basic für Applikationen (VBA)-Objektmodell zu ermöglichen. Wenn diese Einstellung "off" (Standard) ist, wird möglicherweise beim Ausführen des Beispielcodes einen Fehler angezeigt. Zusätzliche Informationen über diese Einstellung und zum Beheben des Fehlers folgendem Artikel der Microsoft Knowledge Base:
282830PRB: Programmatische Zugriff auf Office XP-VBA-Projekt verweigert

Informationsquellen

Weitere Informationen zur Office-Automatisierung finden Sie unter den folgenden Microsoft Office Development-Website:
http://support.microsoft.com/ofd

Eigenschaften

Artikel-ID: 303017 - Geändert am: Dienstag, 23. August 2005 - Version: 5.4
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: 
kbmt kbautomation kbhowto KB303017 KbMtde
Maschinell übersetzter Artikel
Wichtig: Dieser Artikel wurde maschinell und nicht von einem Menschen übersetzt. Die Microsoft Knowledge Base ist sehr umfangreich und ihre Inhalte werden ständig ergänzt beziehungsweise überarbeitet. Um Ihnen dennoch alle Inhalte auf Deutsch anbieten zu können, werden viele Artikel nicht von Menschen, sondern von Übersetzungsprogrammen übersetzt, die kontinuierlich optimiert werden. Doch noch sind maschinell übersetzte Texte in der Regel nicht perfekt, insbesondere hinsichtlich Grammatik und des Einsatzes von Fremdwörtern sowie Fachbegriffen. Microsoft übernimmt keine Gewähr für die sprachliche Qualität oder die technische Richtigkeit der Übersetzungen und ist nicht für Probleme haftbar, die direkt oder indirekt durch Übersetzungsfehler oder die Verwendung der übersetzten Inhalte durch Kunden entstehen könnten.
Den englischen Originalartikel können Sie über folgenden Link abrufen: 303017
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