Exemplarische Vorgehensweise: Programmieren in Abhängigkeit von Ereignissen eines NamedRange-Steuerelements
In dieser exemplarischen Vorgehensweise wird veranschaulicht, wie einem Microsoft Office Excel-Arbeitsblatt ein NamedRange-Steuerelement hinzugefügt wird, und die Programmierung mit den Ereignissen mithilfe der Office-Entwicklungstools in Visual Studio beschrieben.
Betrifft: Die Informationen in diesem Thema betreffen Projekte auf Dokumentebene für Excel 2007 und Excel 2010. Weitere Informationen finden Sie unter Verfügbare Funktionen nach Office-Anwendung und Projekttyp.
In dieser exemplarischen Vorgehensweise werden folgende Aufgaben beschrieben:
Hinzufügen eines NamedRange-Steuerelements zu einem Arbeitsblatt.
Programmieren in Abhängigkeit von Ereignissen des NamedRange-Steuerelements.
Testen des Projekts.
Tipp
Auf Ihrem Computer werden möglicherweise andere Namen oder Speicherorte für die Benutzeroberflächenelemente von Visual Studio angezeigt als die in den folgenden Anweisungen aufgeführten. Die von Ihnen verwendete Visual Studio-Edition und die Einstellungen legen diese Elemente fest. Weitere Informationen finden Sie unter Arbeiten mit Einstellungen.
Vorbereitungsmaßnahmen
Zum Durchführen dieser exemplarischen Vorgehensweise benötigen Sie die folgenden Komponenten:
-
Eine Version von Visual Studio 2010, die die Microsoft Office-Entwicklungstools einschließt. Weitere Informationen finden Sie unter [Konfigurieren eines Computers zum Entwickeln von Office-Lösungen](bb398242\(v=vs.100\).md).
- Excel 2007 oder Excel 2010
Erstellen des Projekts
In diesem Schritt erstellen Sie mit Visual Studio ein Excel-Arbeitsmappenprojekt.
So erstellen Sie ein neues Projekt
Erstellen Sie ein Excel-Arbeitsmappenprojekt mit dem Namen My Named Range Events. Stellen Sie sicher, dass Neues Dokument erstellen ausgewählt ist. Weitere Informationen hierzu finden Sie unter Gewusst wie: Erstellen von Office-Projekten in Visual Studio.
Visual Studio öffnet eine neue Excel-Arbeitsmappe im Designer und fügt im Projektmappen-Explorer das Projekt "My Named Range Events" hinzu.
Hinzufügen von Text und benannten Bereichen zum Arbeitsblatt
Da Hoststeuerelemente erweiterte Office-Objekte sind, können Sie sie einem Dokument auf dieselbe Weise wie systemeigene Objekte hinzufügen. Sie können dem Arbeitsblatt z. B. ein NamedRange-Steuerelement in Excel hinzufügen, indem Sie das Menü Einfügen öffnen, auf Name zeigen und Definieren auswählen. Sie können ein NamedRange-Steuerelement auch hinzufügen, indem Sie es aus der Toolbox auf das Arbeitsblatt ziehen.
In diesem Schritt fügen Sie dem Arbeitsblatt mithilfe der Toolbox zwei benannte Bereichssteuerelemente hinzu und fügen dann Text in das Arbeitsblatt ein.
So fügen Sie dem Arbeitsblatt einen Bereich hinzu
Vergewissern Sie sich, dass die Arbeitsmappe My Named Range Events.xls im Visual Studio-Designer geöffnet ist und Sheet1 angezeigt wird.
Ziehen Sie von der Registerkarte Excel-Steuerelemente der Toolbox ein NamedRange-Steuerelement auf Zelle A1 von Sheet1.
Das Dialogfeld NamedRange-Steuerelement hinzufügen wird angezeigt.
Vergewissern Sie sich, dass $A$1 im bearbeitbaren Textfeld angezeigt wird und dass Zelle A1 ausgewählt ist. Wenn dies nicht der Fall ist, klicken Sie auf Zelle A1, um sie auszuwählen.
Klicken Sie auf OK.
Die Zelle A1 wird zu einem Bereich mit dem Namen namedRange1. Auf dem Arbeitsblatt befindet sich kein sichtbarer Hinweis darauf, jedoch wird bei Auswahl der Zelle A1 im Feld Name (gleich links über dem Arbeitsblatt) namedRange1 angezeigt.
Fügen Sie Zelle B3 ein weiteres NamedRange-Steuerelement hinzu.
Vergewissern Sie sich, dass $B$3 im bearbeitbaren Textfeld angezeigt wird und dass Zelle B3 ausgewählt ist. Wenn dies nicht der Fall ist, klicken Sie auf Zelle B3, um sie auszuwählen.
Klicken Sie auf OK.
Die Zelle B3 wird zu einem Bereich mit dem Namen namedRange2.
So fügen Sie dem Arbeitsblatt Text hinzu
Geben Sie in Zelle A1 den folgenden Text ein:
This is an example of a NamedRange control.
Geben Sie in der Zelle A3 (links von namedRange2) den folgenden Text ein:
Events:
In den folgenden Abschnitten wird Code dargestellt, der in namedRange2 Text einfügt und als Antwort auf das BeforeDoubleClick-Ereignis, das Change-Ereignis und das SelectionChange-Ereignis von namedRange1 die Eigenschaften des namedRange2-Steuerelements ändert.
Hinzufügen von Code, der auf das BeforeDoubleClick-Ereignis reagiert
So fügen Sie auf der Grundlage des BeforeDoubleClick-Ereignisses Text in NamedRange2 ein
Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf Sheet1.vb bzw. Sheet1.cs, und wählen Sie Code anzeigen aus.
Fügen Sie Code hinzu, sodass der namedRange1_BeforeDoubleClick-Ereignishandler wie folgt aussieht:
Private Sub NamedRange1_BeforeDoubleClick( _ ByVal Target As Microsoft.Office.Interop.Excel.Range, ByRef Cancel As Boolean) _ Handles NamedRange1.BeforeDoubleClick With Me.NamedRange2 .Value2 = "The BeforeDoubleClick event occurred." .Font.Color = System.Drawing.ColorTranslator.ToOle(System.Drawing.Color.Red) .Font.Italic = True End With End Sub
private void namedRange1_BeforeDoubleClick( Microsoft.Office.Interop.Excel.Range Target, ref bool Cancel) { this.namedRange2.Value2 = "The BeforeDoubleClick event occurred."; this.namedRange2.Font.Color = System.Drawing.ColorTranslator.ToOle(System.Drawing.Color.Red); this.namedRange2.Font.Italic = true; }
In C# müssen Sie für den benannten Bereich Ereignishandler hinzufügen, wie weiter unten im Startup-Ereignis gezeigt wird. Informationen zum Erstellen von Ereignishandlern finden Sie unter Gewusst wie: Erstellen von Ereignishandlern in Office-Projekten.
this.namedRange1.BeforeDoubleClick += new Microsoft.Office.Interop.Excel. DocEvents_BeforeDoubleClickEventHandler(namedRange1_BeforeDoubleClick); this.namedRange1.Change += new Microsoft.Office.Interop.Excel. DocEvents_ChangeEventHandler(namedRange1_Change); this.namedRange1.SelectionChange +=new Microsoft.Office.Interop.Excel. DocEvents_SelectionChangeEventHandler(namedRange1_SelectionChange);
Hinzufügen von Code, der auf das Change-Ereignis reagiert
So fügen Sie auf der Grundlage des Change-Ereignisses Text in namedRange2 ein
Fügen Sie Code hinzu, sodass der NamedRange1_Change-Ereignishandler folgendermaßen aussieht:
Private Sub NamedRange1_Change(ByVal Target As Microsoft.Office.Interop.Excel.Range) _ Handles NamedRange1.Change With Me.NamedRange2 .Value2 = "The Change event occurred." .Font.Color = System.Drawing.ColorTranslator.ToOle(System.Drawing.Color.Blue) .Font.Italic = False End With End Sub
private void namedRange1_Change(Microsoft.Office.Interop.Excel.Range Target) { this.namedRange2.Value2 = "The Change event occurred."; this.namedRange2.Font.Color = System.Drawing.ColorTranslator.ToOle(System.Drawing.Color.Blue); this.namedRange2.Font.Italic = false; }
Tipp
Da durch Doppelklicken auf eine Zelle in einem Excel-Bereich der Bearbeitungsmodus gestartet wird, wird ein Change-Ereignis ausgelöst, wenn eine Auswahl aus dem Bereich heraus verschoben wird, auch wenn keine Änderungen am Text vorgenommen werden.
Hinzufügen von Code, der auf das SelectionChange-Ereignis reagiert
So fügen Sie auf der Grundlage des SelectionChange-Ereignisses Text in namedRange2 ein
Fügen Sie Code hinzu, sodass der NamedRange1_SelectionChange-Ereignishandler folgendermaßen aussieht:
Private Sub NamedRange1_SelectionChange(ByVal Target As Microsoft.Office.Interop.Excel.Range) _ Handles NamedRange1.SelectionChange With Me.NamedRange2 .Value2 = "The SelectionChange event occurred." .AddComment("SelectionChange always occurs before BeforeDoubleClick.") .Font.Color = System.Drawing.ColorTranslator.ToOle(System.Drawing.Color.Black) End With End Sub
private void namedRange1_SelectionChange(Microsoft.Office.Interop.Excel.Range Target) { this.namedRange2.Value2 = "The SelectionChange event occurred."; this.namedRange2.AddComment("SelectionChange always occurs before BeforeDoubleClick."); this.namedRange2.Font.Color = System.Drawing.ColorTranslator.ToOle(System.Drawing.Color.Black); }
Tipp
Da durch Doppelklicken auf eine Zelle in einem Excel-Bereich die Auswahl in den Bereich verschoben wird, wird ein SelectionChange-Ereignis ausgelöst, bevor das BeforeDoubleClick-Ereignis auftritt.
Testen der Anwendung
Nun können Sie die Arbeitsmappe testen, um zu überprüfen, ob Text, der die Ereignisse eines NamedRange-Steuerelements beschreibt, beim Auslösen der Ereignisse in einen anderen benannten Bereich eingefügt wird.
So testen Sie das Dokument
Drücken Sie F5, um das Projekt auszuführen.
Platzieren Sie den Cursor in namedRange1, und vergewissern Sie sich, dass der das SelectionChange-Ereignis betreffende Text und ein Kommentar in das Arbeitsblatt eingefügt werden.
Doppelklicken Sie in namedRange1, und vergewissern Sie sich, dass der die BeforeDoubleClick-Ereignisse betreffende Text rot und kursiv formatiert in namedRange2 eingefügt wird.
Klicken Sie außerhalb von namedRange1, und beachten Sie, dass das Change-Ereignis auch dann auftritt, wenn der Bearbeitungsmodus beendet und keine Änderungen am Text vorgenommen wurden.
Ändern Sie den Text in namedRange1.
Klicken Sie außerhalb von namedRange1, und vergewissern Sie sich, dass der das Change-Ereignis betreffende Text blau formatiert in namedRange2 eingefügt wird.
Nächste Schritte
In dieser exemplarischen Vorgehensweise werden die Grundlagen des Programmierens in Abhängigkeit von Ereignissen eines NamedRange-Steuerelements erläutert. Hier ist eine Aufgabe, die danach kommen könnte:
- Bereitstellen des Projekts. Weitere Informationen finden Sie unter Bereitstellen von Office-Projektmappen.
Siehe auch
Aufgaben
Gewusst wie: Ändern der Größe von NamedRange-Steuerelementen
Gewusst wie: Hinzufügen von NamedRange-Steuerelementen zu Arbeitsblättern
Gewusst wie: Erstellen von Ereignishandlern in Office-Projekten
Konzepte
Übersicht über Hostelemente und Hoststeuerelemente
Automatisieren von Excel mithilfe von erweiterten Objekten
Programmgesteuerte Einschränkungen von Hostelementen und Hoststeuerelementen