VBA-Schulung 2003-03-27/28Debugging2 Debugging von Makros.

Post on 06-Apr-2015

113 views 0 download

Transcript of VBA-Schulung 2003-03-27/28Debugging2 Debugging von Makros.

Debugging 2VBA-Schulung 2003-03-27/28

Debugging von Makros

Debugging 3VBA-Schulung 2003-03-27/28

KompilierenMenüpunkt „Debuggen – Kompilieren von Project“:

Kompiliert alle Makros sie laufen etwas schnellerWeist uns auf Syntax-Fehler hin:

Debugging 4VBA-Schulung 2003-03-27/28

HaltepunkteHaltepunkte können gesetzt werden, um die Ausführung vom Code an einer bestimmten Stelle zu unterbrechenHaltepunkt wird über F9 oder Mausklick links neben der Zeile gesetztNach dem Anhalten können die Inhalte aller Variablen betrachtet werden

Debugging 5VBA-Schulung 2003-03-27/28

EinzelschrittAus einem Haltepunkt kann die Ausführung schrittweise (Einzelschritt) fortgeführt werdenMit Einzelschritt kann auch jede Prozedur gestartet werden„Prozedurschritt“ oder „Prozedur abschliessen“ für schnelleres Bewegen benutzenFestlegen der nächsten Anweisung (Strg+F9) ist auch möglich

Debugging 6VBA-Schulung 2003-03-27/28

ÜberwachungÜberwachungsausdrücke:

zeigen den Wert des überwachten Ausdrucks an oderunterbrechen die Ausführung, wenn der Ausdruck einen bestimmten Wert annimmt / True wird

Debugging 7VBA-Schulung 2003-03-27/28

ÜberwachungBeispiel:

Public Sub TestÜberwachung() Dim i As Long For i = 1 To 100 Debug.Print i Next

End Sub

Überwachungsausdruck i > 90

hinzufügen

Debugging 8VBA-Schulung 2003-03-27/28

LokalfensterDas Lokalfenster zeigt die Inhalte aller lokalen Variablen (auch Objektvariablen) anAufruf über Menü „Ansicht – Lokalfenster“

Debugging 9VBA-Schulung 2003-03-27/28

AufrufelisteDie Aufrufeliste zeigt die Reihenfolge der Prozeduraufrufe, die zu der aktuellen Zeile geführt haben

Aufruf über Strg+Lam besten in Verbindung mit einem Haltepunkt oder nach einem Fehler

Debugging 10VBA-Schulung 2003-03-27/28

DirektfensterIm Direktfenster (Strg+G) können Prozeduren direkt gestartet werdenWährend einer Unterbrechung der Ausführung (Haltepunkt / Fehler) können hier Ausdrücke ausgewertet werdenDie Makros können über Debug.Print Statusinformationen ausgeben

Debugging 11VBA-Schulung 2003-03-27/28

ShortcutsNützliche Tastenkombinationen

Strg+Leertaste: Begriff vervollständigenStrg+G: DirektfensterStrg+L: AufrufelisteStrg+Shift+F2: Zur letzten Cursorposition zurückkehrenF5: Prozedur starten / fortfahrenF8: Prozedur im Einzelschritt starten / fortfahrenShift+F8: ProzedurschrittStrg+Shift+F8: Prozedur abschliessenStrg+Shift+F8: Nächste Anweisung festlegenStrg+Pause: Ausführung unterbrechenShift+F2: Definition anzeigenF9: Haltepunkt setzen / entfernen

Debugging 12VBA-Schulung 2003-03-27/28

Namensgebung„Pre“-Prefixe:

g – Global (Public im Modulkopf)Public gTables As CTables

m – Modulweit (Private / Dim im Modul- / Formular- / Klassenkopf)Private mTbl As OrgDbServer31.Table

p – Parameter (an eine Prozedur übergebene Parameter)Public Sub DialNumber(psField As String)

c – KonstantePrivate Const csErrSource = "CDatabaseSupport"

Kein „Pre“-Prefix bei lokalen Variablen

Debugging 13VBA-Schulung 2003-03-27/28

NamensgebungPrefixe für Standard-Typen

s – Stringl – Longb – Booleandbl – Doubleobj – Objekt allgemein (z.B. Klassenobjekt)

Debugging 14VBA-Schulung 2003-03-27/28

NamensgebungPrefixe für Steuerelemente

cbo – ComboBox chk – CheckBox cmd –

CommandButton ctl – Control (allg.) dtp – DatePicker fra – Frame frm – Formular img – Image

iml – ImageList itm – ListItem lbl – Label lst – ListBox lvw – ListView opt – OptionButton pg – Page txt – TextBox tvw – TreeView

Debugging 15VBA-Schulung 2003-03-27/28

NamensgebungPrefixe für OrgDbServer-Objekte

doc – Document fld – Field fn – Function idx – Index odb – Database perm – Permission prop – Property

prq – ParserRequest prs – Parser rel – Relation tbl – Table usr – User var – PersistVar

Debugging 16VBA-Schulung 2003-03-27/28

NamensgebungPrefixe für OrgData-Objekte

ctrl – FormControl lc – ListColumn tl – TableLayout ws – Workspace wsg – WorkspaceGroup wscol – WorkspaceColumn wsfra – WorkspaceFrame

Debugging 17VBA-Schulung 2003-03-27/28

Namensgebung

Welche Namensgebung man benutzt, ist egal, Hauptsache man benutzt sie.

Debugging 18VBA-Schulung 2003-03-27/28

Haben Sie

Fragen?

Debugging 19VBA-Schulung 2003-03-27/28

Vielen Dank für Ihre Aufmerksamkeit