Exemplarische Vorgehensweise: Programmieren in Abhängigkeit von Ereignissen eines NamedRange-Steuerelements
Aktualisiert: November 2007
Betrifft |
---|
Die Informationen in diesem Thema gelten nur für die angegebenen Projekte und Versionen von Visual Studio Tools for Office von Microsoft Office. Projekttyp
Microsoft Office-Version
Weitere Informationen hierzu finden Sie unter Verfügbare Features nach Anwendung und Projekttyp. |
In dieser exemplarischen Vorgehensweise wird veranschaulicht, wie einem Microsoft Office Excel-Arbeitsblatt ein NamedRange-Steuerelement hinzugefügt und mithilfe von Visual Studio Tools for Office in Abhängigkeit von den Ereignissen des Steuerelements programmiert wird.
Sie erhalten eine Einführung zu den folgenden Vorgängen:
Hinzufügen eines NamedRange-Steuerelements zu einem Arbeitsblatt.
Programmieren in Abhängigkeit von Ereignissen des NamedRange-Steuerelements.
Testen des Projekts.
Hinweis: |
---|
Auf Ihrem Computer werden möglicherweise andere Namen oder Speicherorte für die Benutzeroberflächenelemente von Visual Studio, die in den folgenden Anweisungen aufgeführt sind, angezeigt. Die von Ihnen verwendete Visual Studio-Edition und die Einstellungen legen diese Elemente fest. Weitere Informationen finden Sie unter Visual Studio-Einstellungen. |
Vorbereitungsmaßnahmen
Um die exemplarische Vorgehensweise nachzuvollziehen, benötigen Sie:
Visual Studio Tools for Office (eine optionale Komponente von Visual Studio 2008 Professional und Visual Studio Team System).
Microsoft Office Excel 2003 oder Microsoft Office Excel 2007.
Erstellen des Projekts
In diesem Schritt erstellen Sie mithilfe von Visual Studio Tools for Office 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 Visual Studio Tools for Office-Projekte.
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 Visual Studio Tools for Office.
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; }
Hinweis: 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); }
Hinweis: 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. Die folgenden Aufgaben könnten sich daran anschließen:
Bereitstellen des Projekts. Weitere Informationen finden Sie unter Bereitstellen von Office-Projektmappen.
Programmieren in Abhängigkeit von Ereignissen von XMLNode-Ansichtssteuerelementen. Weitere Informationen finden Sie unter Exemplarische Vorgehensweise: Ändern des Aktionsbereichs gemäß dem Benutzerkontext.
Siehe auch
Aufgaben
Gewusst wie: Löschen von NamedRange-Steuerelementen zur Entwurfszeit
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 Visual Studio Tools for Office
Konzepte
Übersicht über Hostelemente und Hoststeuerelemente
Programmgesteuerte Einschränkungen von Hostelementen und Hoststeuerelementen