Fragenkatalog zur Prüfungsvorbereitung
Transcrição
Fragenkatalog zur Prüfungsvorbereitung
HAW Hamburg / Dept. F+F / DV Fragenkatalog zur Pruefungsvorbereitung.doc Fragenkatalog zur Prüfungsvorbereitung - Themenkomplex VBA Inhaltsverzeichnis A. B. C. D. E. F. G. H. I. J. Grundlagen ....................................................................................................................... 1 Datentypen und Variablendeklaration ............................................................................ 3 Operatoren und Wertzuweisungen................................................................................. 4 Wichtige VBA-Funktionen................................................................................................ 5 Kontrollstrukturen ............................................................................................................ 5 Makros und Funktionen & Prozeduren mit Argumenten............................................... 6 Objektorientierte Programmierung mit VBA................................................................... 7 Fehlertolerante Programmierung mit VBA...................................................................... 7 UserForms, Module und Klassenmodule etc. ................................................................. 8 Applikationsübergreifende VBA-Programmierung ......................................................... 8 A. Grundlagen 1. Wofür steht die Abkürzung VBA? 2. Kann man mit VBA kompilierte Programme als ausführbare Datei speichern? 3. Welche der folgenden Aussagen treffen auf VBA zu: Die Sprache ist… … nur objektorientiert … rein prozedural … hybrid (mit prozeduralen und objektorientierten Elementen) … eine Interpretersprache … plattformunabhängig … optimal für umfangreiche Rechenoperationen (wie z.B. FEM-Analysen) … nur zusammen mit einer Host-Anwendung verwendbar … in der Lage, grafische Benutzeroberflächen zu erzeugen … von Hackern zur Programmierung von Makroviren missbraucht worden … unterscheidet nicht zwischen Groß- und Kleinschreibung 4. Beschreiben Sie kurz, wozu die einzelnen Fenster des VB-Editors dienen: a. Code-Fenster b. Projekt-Explorer c. Eigenschaftsfenster d. Lokalfenster e. Direktfenster 5. Welche Anweisung erzeugt Ausgaben in das Direktfenster? 6. Was bedeutet „Debuggen“? Nennen Sie mindestens drei Funktionen, die der VB-Editor hierfür anbietet. Dipl.-Ing. J. Abulawi SS 2009 Seite 1/8 HAW Hamburg / Dept. F+F / DV Fragenkatalog zur Pruefungsvorbereitung.doc 7. Welche Art von Programmfehlern kann der VB-Editor a. automatisch schon bei der Quellcodeeingabe erkennen? b. erst bei der Ausführung einer Prozedur erkennen? c. gar nicht erkennen? 8. Was passiert mit einer gerade ausgeführten Prozedur und ihren lokalen Variablen, wenn ein Laufzeitfehler auftritt und der Benutzer in der Fehlermeldung die Schaltfläche „Debuggen“ anklickt? Wie nennt man den resultierenden Prozedurzustand? 9. Wie kann man seinen VBA-Quellcode gegen den „Diebstahl geistigen Eigentums“ schützen? 10. Wozu dient der Objektkatalog des VB-Editors? 11. Welche beiden Zeichen können in VBA das Ende einer Anweisung kennzeichnen? 12. Wie kennzeichnet man Kommentare in VBA? 13. Welches Zeichen dient im Codefenster des VB-Editors als Dezimaltrennzeichen von Gleitkommazahlen? 14. Welche Aufgabe hat das Komma im VBA-Quellcode? 15. Wie muss man die Sicherheitseinstellungen in MS Excel ändern, um VBAProzeduren ausführen zu können, die man selber erzeugt hat? 16. Warum ist die Sicherheitsstufe „Niedrig“ nicht empfehlenswert? 17. Was sollte man immer tun, bevor man VBA-Quellcode ausführt, den man im Internet gefunden hat? 18. Unter welchen Voraussetzungen darf/sollte man für ein Programmierprojekt Codeabschnitte verwenden, die man nicht selber entwickelt hat? 19. Wie sind in diesem Zusammenhang vom Makrorekorder aufgezeichnete Quellcodeabschnitte zu bewerten? 20. Was sollte man vor der Verwendung des Makrorekorders immer machen, wenn man kein erfahrener VBA-Programmierer ist? 21. Wo speichert der Makrorekorder den aufgezeichneten VBA-Quellcode? 22. Kann der Makrorekorder VBA-Quellcode erzeugen, der a. Eingaben vom Benutzer annimmt? b. Kontrollstrukturen enthält? c. Mitteilungen an den Benutzer zurückgibt? 23. Wann ist die Verwendung des Makrorekorders in Excel-VBA sinnvoll? (Nennen Sie drei Beispiele) 24. Wann ist die Unterteilung einer Prozedur in mehrere einzelne Prozeduren sinnvoll? 25. Wo werden VBA-Prozeduren in Excel in der Regel gespeichert? 26. Wie können Sie eine VBA-Prozedur am einfachsten für jemanden ausführbar machen, der „nur“ normaler Excelanwender ist und VBA nicht kennt? 27. Wie kann man eine VBA-Prozedur in einer eigenen Datei speichern? Dipl.-Ing. J. Abulawi SS 2009 Seite 2/8 HAW Hamburg / Dept. F+F / DV Fragenkatalog zur Pruefungsvorbereitung.doc B. Datentypen und Variablendeklaration 1. Wann kann man in VBA undeklarierte Variablen verwenden? 2. Worin unterscheidet sich die vollständige von der unvollständigen Variablendeklaration? Nennen Sie ein Beispiel für jede Deklarationsart. 3. Was bewirkt die Anweisung „Option Explicit“ im Modulkopf? 4. Welchen Datentyp bekommen unvollständig deklarierte Variablen? 5. Welche Vor- und Nachteile bietet der Datentyp Variant? 6. Welches Risiko bringt das Programmieren ohne „Option Explicit“ mit sich? 7. Wo kann man Variablen mit dem Schlüsselwort Public deklarieren, und was bewirkt das Schlüsselwort? 8. Wie und wo kann man in VBA eigene (benutzerdefinierte) Datentypen definieren? 9. Ergänzen Sie die nachfolgende Tabelle zu den Datentypen: Name des Wertebereich Datentyps Speicher- Initialwert platzbedarf (in Bytes) Funktion zur Umwandlung von Daten in diesen Datentyp (sofern vorhanden) Beispiel für eine zulässige Umwandlung in diesen Datentyp True / False Ganze Zahl von 0 bis 255 Ganze Zahl von -32768 bis 32767 Ganze Zahl von -(2^32)/2 bis (2^32)/2 - 1 Einfach genaue Gleitkommazahl von –3,4E38 bis 3,4E38 Doppelt genaue Gleitkommazahl von –1,8E308 bis 1,8E308 Eine Folge von max. 2^31 ANSI-Zeichen Abhängig vom Subtyp Objektverweise 10. Wann führt die Typumwandlung einer Gleitkommazahl in eine ganze Zahl in VBA zu einem mathematisch inkorrekten Ergebnis? Dipl.-Ing. J. Abulawi SS 2009 Seite 3/8 HAW Hamburg / Dept. F+F / DV Fragenkatalog zur Pruefungsvorbereitung.doc 11. Welche Datentypen erhalten die zwei Variablen durch die folgende Deklaration: Dim i, j As Integer 12. Wann wird der Wert einer Variablen gelöscht und der Speicherplatz wieder frei gegeben? (bitte sowohl für lokale als auch für globale Variablen beantworten) 13. Was versteht man unter den Begriffen a. Gültigkeitsbereich einer Variablen? b. Lebensdauer einer Variablen? 14. Wann wird der Speicherplatz reserviert für: a. eine vollständig deklarierte Variable? b. eine unvollständig deklarierte Variable? c. eine undeklarierte Variable? 15. Warum sollte man möglichst nur mit vollständig deklarierten Variablen arbeiten? 16. Wie kann man in VBA ein zweidimensionales Datenfeld deklarieren, das die Werte einer Matrix mit 8 Zeilen und 12 Spalten aufnehmen kann? 17. Wie viele Datenfeldelemente erzeugt die Anweisung: Dim Daten (9) 18. Was bewirkt die Anweisung: Redim Daten(1 to 20) 19. Was bewirkt „Option Base 1“ im Modulkopf? 20. Was ist der Unterschied zwischen „lokalen“ und „globalen“ Variablen? 21. Wann muss ein Datenfeld den Datentyp „Variant“ haben? 22. Wie kann man die Anzahl der Elemente eines eindimensionalen Datenfelds ermitteln? 23. Wie kann man ein eindimensionales Datenfeld unbekannter Größe um ein Element erweitern, ohne die bereits im Datenfeld gespeicherten Werte zu löschen? 24. Kann man ein mehrdimensionales Datenfeld dynamisch während der Prozedurausführung vergrößern? C. Operatoren und Wertzuweisungen 1. Welche arithmetischen Operatoren gibt es in VBA? 2. Wie kann man in VBA Zeichenfolgen miteinander verknüpfen? 3. Mit welchen Operatoren kann man in VBA folgende Vergleiche durchführen? a. „kleiner oder gleich“ b. „größer oder gleich“ 4. Wofür verwendet man den Operator „Is“ in VBA? 5. Wie kann man in VBA logische Bedingungen miteinander verknüpfen oder invertieren? a. UND b. ODER c. ENTWEDER ODER d. NICHT Dipl.-Ing. J. Abulawi SS 2009 Seite 4/8 HAW Hamburg / Dept. F+F / DV Fragenkatalog zur Pruefungsvorbereitung.doc 6. Wann verwendet man in VBA die Zeichenfolge „:=“? 7. Worin unterscheidet sich die Anweisung für eine Wertzuweisung in eine Objektvariable von einer Wertzuweisung in eine Variable eines einfachen Datentyps? D. Wichtige VBA-Funktionen 1. Mit welcher Funktion kann man ein einfaches Eingabefenster erzeugen? 2. Welche Schaltflächen hat das mit dieser Funktion erzeugte Eingabefenster immer? 3. Welche Eingabeprüfungen muss man durchführen, wenn man mit diesem Eingabefenster vom Anwender eine ganze Zahl eingeben lassen möchte? 4. Wie kann man feststellen, ob der Anwender die Eingabe in dieses Eingabefenster abbrechen wollte? 5. Mit welcher Funktion kann man ein einfaches Mitteilungsfenster erzeugen? 6. Welche verschiedenen Schaltflächen kann das einfache Mitteilungsfenster haben? 7. Wozu dienen die folgenden Zeichenfolgen-Funktionen: a. Instr-Funktion b. Len-Funktion c. Left-Funktion d. Right-Funktion e. Mid-Funktion f. Replace-Funktion g. IsNumeric-Funktion E. Kontrollstrukturen 1. Wie lautet in VBA die Syntax für eine Anweisung, die nur bei Erfüllung einer bestimmten Bedingung ausgeführt werden soll? 2. Welches Schlüsselwort steht am Ende einer einzeiligen bedingten Anweisung? 3. Welches Schlüsselwort steht am Ende einer mehrzeiligen bedingten Anweisung? 4. Mit welcher Kontrollstruktur kann man in VBA verschiedene Anweisungen von der Erfüllung verschiedener Bedingungen abhängig machen? Geben Sie die vollständige Syntax an. 5. Wie kann man in VBA verschiedene Anweisungen davon abhängig machen, dass eine bestimmte Variable verschiedene Werte hat? 6. Wie lautet in VBA die Syntax für eine zählergesteuerte Schleife? 7. Welches mathematische Symbol in einer arithmetischen Formel zeigt Ihnen, dass die Formel am besten mit einer zählergesteuerten Schleife zu codieren ist? 8. Muss die Indexvariable einer zählergesteuerten Schleife ganzzahlig sein? 9. Wie berechnet man die Anzahl der Durchläufe einer zählergesteuerten Schleife? 10. Welchen Wert hat die Indexvariable nach dem letzten Durchlauf der zählergesteuerten Schleife? Dipl.-Ing. J. Abulawi SS 2009 Seite 5/8 HAW Hamburg / Dept. F+F / DV Fragenkatalog zur Pruefungsvorbereitung.doc 11. Welche vier Grundformen für bedingungsgesteuerte Schleifen kann man in VBA mit den Schlüsselwörtern Do und Loop erzeugen? Notieren Sie die allgemeine Syntax für jede dieser Formen. 12. Was ist der entscheidende Unterschied zwischen kopf- und fußgesteuerten Schleifen? 13. Mit welcher Schleifenform kann man in VBA eine unendliche Summe näherungsweise berechnen, wenn die Summe gegen einen endlichen Grenzwert konvergiert? 14. Mit welchen Anweisungen kann man in VBA die Ausführung von Schleifen vorzeitig abbrechen: a. bei einer zählergesteuerten Schleife? b. bei einer bedingungsgesteuerten Schleife? F. Makros und Funktionen & Prozeduren mit Argumenten 1. Wann bezeichnet man eine VBA-Prozedur als Makro? 2. Was ist die Besonderheit der Function-Prozedur? 3. Wie kann man Argumente an eine Prozedur übergeben? 4. Welches Schlüsselwort dient dazu, a. nur den Wert einer Variablen zu übergeben ? b. eine Variable „mit Schreibrechten“ zu übergeben ? 5. Wie wird eine Variable als Argument übergeben, wenn man keines dieser beiden Schlüsselwörter verwendet? 6. Wie kann man mit VBA Funktionen erzeugen, die in den Arbeitsblättern der zugehörigen Arbeitsmappe als benutzerdefinierte Funktion verwendbar sind? 7. Unter welcher Bedingung ist eine Prozedur vom Benutzer direkt ausführbar? 8. Wie kann ein Benutzer die Ausführung einer Excel-VBA-Prozedur veranlassen, ohne den VB-Editor zu benutzen? 9. Mit welchen Schlüsselwort kann man aus einer Prozedur eine andere Prozedur aufrufen? 10. Wann kann man Argumente an eine aufgerufene Prozedur übergeben, ohne die Argumente in runden Klammern einzuklammern? 11. Kann man eine Function-Prozedur aufrufen, ohne dass ihr Rückgabewert in einer Variablen gespeichert wird? 12. Mit welchen Anweisungen kann man in VBA die Ausführung von Prozeduren vorzeitig abbrechen: a. in einer Sub-Prozedur? b. in einer Function-Prozedur? Dipl.-Ing. J. Abulawi SS 2009 Seite 6/8 HAW Hamburg / Dept. F+F / DV Fragenkatalog zur Pruefungsvorbereitung.doc G. Objektorientierte Programmierung mit VBA 1. Was versteht man unter den folgenden Grundprinzipien der Objektorientierung: a. Klassenbildung b. Kapselung c. Vererbung d. Polymorphismus 2. Welches dieser vier Prinzipien unterstützt VBA nicht? 3. Was unterscheidet ein Objekt (object) von einer Auflistung (collection)? 4. Wie kann man die Anzahl der in einer Auflistung enthaltenen Elemente ermitteln? 5. Wie kann man ein Element zu einer Auflistung hinzufügen? 6. Mit welcher Schleifenstruktur kann man Anweisungen für jedes Element einer Auflistung ausführen? 7. Wie kann man auf ein Element aus einer Auflistung zugreifen? 8. Warum muss man normalerweise die Position eines Objekts in der Objekthierarchie kennen, um auf das Objekt zugreifen zu können? 9. Wozu dient die With-Anweisung? 10. Wann muss man in Excel-VBA nicht den kompletten Objektpfad zu einem bestimmten Objekt in der Objekthierarchie angeben? 11. Wofür stehen diese vordefinierten Objekte? Wann haben sie den Wert „Nothing“? a. ActiveWindow? b. ActivePrinter? c. ActiveWorkbook? d. ActiveSheet ? e. ActiveChart? f. ActiveCell? 12. Warum sind manche Objekteigenschaften schreibgeschützt („read-only“)? Nennen Sie zwei Beispiele für schreibgeschützte Objekteigenschaften. H. Fehlertolerante Programmierung mit VBA. 1. Mit welchen Anweisungen kann man verhindern, dass eine Prozedurausführung von einem Laufzeitfehler unterbrochen wird? 2. Wie kann man die laufzeitfehlerbedingte Prozedurunterbrechung im Quellcode wieder aktivieren, wenn sie zuvor deaktiviert wurde? 3. Was wird in der Eigenschaft err.number gespeichert? 4. Wie kann man einen Laufzeitfehler im Quellcode „zurücksetzen“ und den Fehlercode löschen? 5. Kann man eigene Laufzeitfehler definieren und auslösen? 6. Welche Anweisungen benötigen Sie im VBA Quellcode, um die Prozedurausführung beim Auftreten eines Laufzeitfehlers in einen speziellen Dipl.-Ing. J. Abulawi SS 2009 Seite 7/8 HAW Hamburg / Dept. F+F / DV Fragenkatalog zur Pruefungsvorbereitung.doc Prozedurabschnitt am Ende der Prozedur umzuleiten und nach der Fehlerbehandlung die Prozedurausführung fortzusetzen? 7. Was findet man in der VB-Onlinehilfe unter dem Stichwort „auffangbare Fehler“? I. UserForms, Module und Klassenmodule etc. 8. Wozu fügt man in ein VBA-Projekt eine „UserForm“ ein? 9. Wozu dienen Klassenmodule? 10. Wo speichert man VBA-Quellcode, der auf Ereignisse eines bestimmten Arbeitsblatts reagieren soll? Nennen Sie zwei solche Ereignisse und die hierfür zu verwendenden Prozedurnamen. 11. Wo speichert man VBA-Quellcode, der auf allgemeine Ereignisse der gesamten Arbeitsmappe reagieren soll? Nennen Sie zwei solche Ereignisse und die hierfür zu verwendenden Prozedurnamen. 12. Welchen Quellcode sollte man in den „ganz normalen“ VBA-Modulen speichern? 13. Was ist zu beachten, wenn Sie nachträglich Namen ändern möchten: a. Namen eines Moduls mit VBA-Quellcode? b. Namen einer UserForm? c. Namen eines Steuerelements aus einer UserForm/einem Tabellenblatt? d. Namen eines Klassenmoduls? e. Namen eines Tabellenblatts mit ereignisorientierten Prozeduren? f. Namen einer Variablen? g. Namen einer Sub-Prozedur? h. Namen einer Function-Prozedur? J. Applikationsübergreifende VBA-Programmierung 1. Kann man VBA-Quellcode aus einem Excel-VBA-Projekt in ein CATVBA-Projekt übertragen und dann in CATIA V5 ausführen? Ist die Übertragung von VBAQuellcode auch in umgekehrter Richtung möglich? 2. Kann man mit VBA-Quellcode auf das Dateisystem eines Rechners zugreifen? 3. Kann man mit VBA-Quellcode auf fremde Applikationen zugreifen (also z.B. aus Excel heraus CATIA V5 starten und/oder schließen)? 4. Was ist zu beachten, wenn Sie eine fremde Applikation „ferngesteuert“ mit VBA starten (wenn Sie also zum Beispiel aus CATIA heraus Excel aufrufen) ? Dipl.-Ing. J. Abulawi SS 2009 Seite 8/8