Übung Kleine Helfer ◦ ?

Lernziele

- Excel-Objekthierarchie, Benutzung der Online-Hilfe
- Auflistung, For Each ... Next-Schleife
- Benannte Argumente
- Ein- und Ausgabe auf Tabellenblatt

Wiederholungsfragen

Ein Klick auf den roten Hyperlink zeigt die richtige Lösung.

1. Welche Aussage ist richtig ?

   1. Ein Objektmodell ist eine Beschreibung von Objekten mit gleichen Eigenschaften und gleichem Verhalten.
   2. Ein Objektmodell beschreibt die Objekte eines Anwendungspakets und deren Beziehungen untereinander.
   3. Ein Objektmodell beschreibt die Teil-von-Beziehungen zwischen Benutzerschnittstellenkomponenten eines Anwendungspakets.

2. Was versteht man unter einer Auflistung ?

   1. Eine Art Behälter für Objekte. Zur Laufzeit können Objekte hinzugefügt und entfernt werden.
   2. Eine Art Behälter für Objektklassen. Die Objekte, die man aufgrund der Klassen zur Laufzeit erstellt, nennt man Instanzen.
   3. Einen Ausschnitt aus dem Objektmodell einer Anwendung. Für den Zugriff auf die Elemente einer Auflistung bedient man sich des Punktoperators.

3. Welches Ziel verfolgt die Abstraktion in der Informatik?

   1. Gegenstände und Konzepte beschreiben, die ihren Zustand selbständig ändern können.
   2. Die bezüglich eines Problembereiches wichtigen Aspekte von den unwichtigen so isolieren, dass sie in Computersystemen abgebildet werden können.
   3. Prozeduren und Daten zu Objekten zusammenfassen, die untereinander kommunizieren und ihren Zustand selbständig ändern können.

4. Eine Excel-Arbeitsmappe enthalte drei Tabellenblätter Tab1, Tab2 und Tab3. Welche Ausgabe produziert das folgende Programm?

       Dim Blatt As Worksheet

       For Each Blatt In Worksheets
         Worksheets("Tab1").Cells(Blatt.Index, 1) = Blatt.Name
       Next

5. Eine Excel-Arbeitsmappe enthalte drei Tabellenblätter Tab1, Tab2 und Tab3, in dieser Reihenfolge. Welche Reihenfolge haben die Tabellenblätter nach Ausführung der folgenden drei Programmzeilen?

       Worksheets("Tab1").Move After:=Worksheets("Tab2")
       Worksheets("Tab2").Move After:=Worksheets("Tab3")
       Worksheets("Tab3").Move After:=Worksheets("Tab1")

Vertiefungsfragen

Vorbereitungen

- Laden Sie die Arbeitsmappe kleineHelferSkelett.xls. Das nächste Bild zeigt die vorbereitete Benutzerschnittstelle.
- Wechseln Sie zur Lösung, und machen Sie sich mit dem Ziel der Aufgabe vertraut, indem Sie alle Funktionen ausprobieren. Wechseln Sie anschliessend wieder zur Aufgabe zurück.
- Zeichnen Sie die fehlenden Schaltflächen "zeige" und "verstecke" und weisen Sie ihnen die Ereignisprozeduren zeige_Klick() bzw. verstecke_Klick() zu.
- Benennen Sie die Zellbereiche unter den mit "CommandBar" bzw. "CommandBarControl" beschrifteten Zellen mit den Namen "commandBar" bzw. "commandBarControl" (je ca. 600 Zeilen).

1. Studieren Sie die Hilfetexte zur CommandBars-Auflistung und zum CommandBar-Objekt. Die Beispielprogramme, die sie dort finden, dienen als Grundlage für die Aufgaben.

   Hinweise: | Wechseln Sie in die Visual Basic-Umbegung , rufen Sie die Visual Basic-Hilfe auf, und geben Sie im Antwort-Assistent das Stichwort 'CommandBars-Auflistung' ein.

   Fragen: | Was ist ein CommandBar-Objekt? Nennen Sie einige CommandBar-Objekte.

   Schreiben Sie in der Ereignisprozedur zeige_Klick() ein Programm, das alle CommandBar-Objekte der Anwendung anzeigt, die die Position-Eigenschaft msoBarFloating haben.

   Hinweise: | In der Hilfe zum CommandBar-Objekt finden Sie ein Beispielprogramm, das Sie abändern können. Ein Objekt wird sichtbar, sobald Sie die Visible-Eigenschaft auf True setzen. Zuvor müssen Sie aber die Enabled-Eigenschaft auf True setzen.

   Fragen: | Was bedeutet der Wert msoBarFloating für die Position-Eigenschaft? Nennen Sie andere mögliche Werte für diese Eigenschaft (konsultieren Sie die Hilfe).

2. Schreiben Sie in der Ereignisprozedur verstecke_Klick() ein Programm, das alle CommandBar-Objekte mit der Position-Eigenschaft msoBarFloating ausblendet.

   Fragen: | Weshalb nur jene mit der Position-Eigenschaft msoBarFloating?

3. Studieren Sie wieder die Hilfetexte zur CommandBars-Auflistung und zum CommandBar-Objekt und zusätzlich die Hilfetexte zur CommandBarControls-Auflistung und zum CommandBarControl-Objekt.

   Fragen: | Was ist ein CommandBarControl-Objekt? Nennen Sie einige CommandBarControl-Objekte.

   Schreiben Sie in der Ereignisprozedur listeAuf_Klick() ein Programm, das die Namen aller CommandBar-Objekte mit der Position-Eigenschaft msoBarFloating auf dem Tabellenblatt im Zellbereich 'commandBar' auflistet.

   Erweitern Sie Ihr Programm so, dass es von jedem sichtbaren CommandBar-Objekt die Namen aller CommandBarControl-Objekte im Zellbereich 'commandBarControl' auflistet.

   Hinweise: | Testen Sie den ersten Teil der Aufgabe, bevor Sie den zweiten in Angriff nehmen. Beachten Sie für den zweiten Teil, dass nur die sichtbaren Objekte Steuerelemente haben.

4. Schreiben Sie in der Ereignisprozedur neueSymbolleiste_Klick() ein Programm, das eine Symbolleiste mit zwei Schaltflächen installiert bzw. deinstalliert.

   - Die Schaltfläche "Symbolleisten anzeigen" zeigt alle nicht-verankerten Symbolleisten an (vgl. Aufgabe a).
   - Die Schaltfläche "Symbolleisten ausblenden" versteckt alle nicht-verankerten Symbolleisten (siehe Aufgabe b).

   Hinweise: | 'Installieren einer Symbolleiste' bedeutet, dass Sie der CommandBars-Auflistung eine neues CommandBar-Objekt hinzufügen und es dann anzeigen lassen. 'Installieren einer Schaltfläche' bedeutet, dass Sie der CommandBarControls-Auflistung einer Symbolleiste ein CommandBarControl-Objekt hinzufügen und es anzeigen lassen. Details können Sie dem unten abgedruckten Pseudocode entnehmen.

   Fragen: | Was bedeutet 'nicht-verankert'?

       setze Variable gefunden = False
       Durchlaufe ALLE Symbolleisten
         FALLS Name der Symbolleiste = "kleine Helfer"
           setze Variable gefunden = True

       FALLS Symbolleiste gefunden
         entferne Symbolleiste "kleine Helfer"
       SONST
         füge Symbolleiste "kleine Helfer" zu Symbolleisten hinzu
         zeige neue Symbolleiste an
         füge Schaltfläche zu den Schaltflächen der neuen Leiste hinzu
         setze Eigenschaften der neuen Schaltfläche:
           Caption = "Symbolleisten anzeigen"
           Style = msoButtonIconAndCaption
           OnAction = "zeige_Klick"
         füge Schaltfläche zu den Schaltflächen der neuen Leiste hinzu
         setze Eigenschaften der neuen Schaltfläche:
           Caption = "Symbolleisten ausblenden"
           Style = msoButtonIconAndCaption
           OnAction = "verstecke_Klick"

5. Schreiben Sie in der Ereignisprozedur neuesMenü_Klick() ein Programm, das ein Menü mit zwei Menüpunkten installiert bzw. deinstalliert:

   - Der Menüpunkt "Symbolleisten anzeigen" zeigt alle nicht-verankerten Symbolleisten an (siehe Aufgabe a).
   - Der Menüpunkt "Symbolleisten ausblenden" versteckt alle nicht-verankerten Symbolleisten (siehe Aufgabe b).

LkleineHelfer.xls

©abo