VBA Einstieg in die Makroprogrammierung in Excel
Visual Basic for Applications Version 5.0
© Andrea Herzog Computersch...
428 downloads
994 Views
713KB Size
Report
This content was uploaded by our users and we assume good faith they have the permission to share this book. If you own the copyright to this book and it is wrongfully on our website, we offer a simple DMCA procedure to remove your content from our site. Start by pressing the button below!
Report copyright / DMCA form
VBA Einstieg in die Makroprogrammierung in Excel
Visual Basic for Applications Version 5.0
© Andrea Herzog Computerschulungen Albisstrasse 76 8134 Adliswil
Juli 1998
Visual Basic for Application
EXCEL
WOZU SIE VISUAL BASIC FOR APPLICATIONS VERWENDEN KÖNNEN _________5 DAS ERSTE PROGRAMM________________________________________________6 Dem Makro eine Schaltfläche zuordnen __________________________________________________ 9
DER VISUAL BASIC EDITOR ____________________________________________13 Die Fenster des Visual Basic Editors____________________________________________________ 13 Das Projektfenster ___________________________________________________________________ 13 Der Programmcode __________________________________________________________________ 14 Die VBA Symbolleiste ________________________________________________________________ 15
DAS MELDUNGSFENSTER (MESSAGEBOX) _______________________________16 Schaltflächen _______________________________________________________________________ 17 Titel _______________________________________________________________________________ 18 Helpfile und Context _________________________________________________________________ 19
EINGABEFELD (INPUTBOX) ____________________________________________20 Default _____________________________________________________________________________ 20
VARIABLEN, KONSTANTEN UND DATENFELDER __________________________21 Variabeln ___________________________________________________________________________ 21 Variablendelklaration_________________________________________________________________ 22 Datentypen (Variablentypen) __________________________________________________________ 23 Konstanten _________________________________________________________________________ 25 Datenfelder (Arrays)__________________________________________________________________ 25
FORMELN, FUNKTIONEN UND VERKNÜPFUNGEN _________________________26 Vergleiche __________________________________________________________________________ 28 Benutzerdefinierte Funktionen _________________________________________________________ 28 If…Then…Else…End IF _______________________________________________________________ 33 Case-Verzweigung ___________________________________________________________________ 37
© Andrea Herzog Computerschulungen
Seite 2
Visual Basic for Application
EXCEL
SCHLEIFEN __________________________________________________________35 For…Next __________________________________________________________________________ 36 Do…Loop Until______________________________________________________________________ 39 While…Wend _______________________________________________________________________ 39 Sprunganweisung GoTo ______________________________________________________________ 40 Unterprogramme aufrufen ____________________________________________________________ 40
PROGRAMMÜBERWACHUNG ___________________________________________41 Direktfenster ________________________________________________________________________ 41 Der Einzelschrittmodus_______________________________________________________________ 42 Haltepunkte ________________________________________________________________________ 43 Lokalfenster ________________________________________________________________________ 44
OBJEKTE – EIGENSCHAFTEN - METHODEN_______________________________45 Objekte und Eigenschaften____________________________________________________________ 46 Eigenschaften ______________________________________________________________________ 49 Objekte und Methoden _______________________________________________________________ 50
ZUGRIFF AUF EXCEL __________________________________________________51 DIALOGFENSTER ( USER FORMS) _______________________________________63 Eigenschaften der DialogBox __________________________________________________________ 63 Befehlsschaltfläche CommandButton ___________________________________________________ 66 Textboxen und ihre Beschreibung (Label) _______________________________________________ 66 Optionsfelder (OptionButton)__________________________________________________________ 67 Kontrollkästchen (CheckBox)__________________________________________________________ 68 Toggle-Button ______________________________________________________________________ 69 Bildlaufleiste und SpinButton__________________________________________________________ 69 Namensgebung _____________________________________________________________________ 70
© Andrea Herzog Computerschulungen
Seite 3
Visual Basic for Application
EXCEL
Ereignisse in Dialogfenstern __________________________________________________________ 71 Listenfelder (ListBox) ________________________________________________________________ 72 ComboBox _________________________________________________________________________ 73 With…End With _____________________________________________________________________ 73 RefEdit_____________________________________________________________________________ 73
ANWENDUNGSBEISPIELE______________________________________________74 Dialogfenster Währungsumrechnung ___________________________________________________ 74 Hotelrechnung ______________________________________________________________________ 80
© Andrea Herzog Computerschulungen
Seite 4
Visual Basic for Application
EXCEL
Wozu Sie Visual Basic for Applications verwenden können EXCEL wird zusammen mit Visual Basic for Applications (VBA) ausgeliefert, einer Programmiersprache, die das Arbeiten mit Tabellen, Daten und Diagrammen vereinfacht und beschleunigt. VBA ist allerdings eine "ausgewachsene", sehr umfangreiche Angelegenheit. Sie zu erlernen, ist mühsam; sie zu beherrschen, erfordert ständige Übung. Der Lohn der Mühe sind mächtige Programme, die viel Zeit ersparen und viel Sicherheit beim Umgang mit Tabellen bringen. EXCEL wird mit einer ausführlichen Online-Hilfe ausgeliefert, die in Form einer alphabetischen Referenz (fast) alles enthält, was man über Visual Basic für Anwendungen wissen muss. Diese neue Sprache enthält tausende Elemente. Sie vollständig zu behandeln, würde den Rahmen dieses Kurses sprengen. Was er kann ist, jene Arbeitsanweisungen vorzustellen, die für die Steuerung von VBAProgrammen und für das Schreiben von neuen EXCEL-Funktionen gebraucht werden. Der Kurs soll Sie in die Lage versetzen, das Grundgerüst eines VBA-Programmes zu erstellen, in das Sie dann jene Anweisungen einfügen, welche die konkrete Verarbeitung Ihrer Daten erledigen.
VBA hilft Ihnen... •
immer wiederkehrende Arbeiten automatisch zu erledigen
•
zu den von EXCEL zur Verfügung gestellten Funktionen neue hinzuzufügen
•
wenig geübten EXCEL-Benutzern eine Arbeitsumgebung zu geben, in der nur noch jene Menüs und Befehle vorhanden sind, die für die konkrete Arbeit gebraucht werden
•
EXCEL-Anwendungen herzustellen, die den Benutzer genauso durch eine Arbeitsfolge führen wie ein mit einer Programmiersprache erstelltes Programm
•
von EXCEL aus andere Microsoft-Anwendungen zu starten und auszuführen.
© Andrea Herzog Computerschulungen
Seite 5
Visual Basic for Application
EXCEL
Das erste Programm Programme, die wie ein aufgezogenes Uhrwerk ablaufen - ohne Wenn und Aber – können Sie EXCEL vorzeigen. Der "Makro-Rekorder" schreibt mit. Ein solches Programm wollen können Sie als erstes erstellen. Es soll beim Arbeiten mit Tabellen die Gitternetzlinien ein und ausblenden Die entsprechenden Schalter finden Sie im Menü "Extras" im Befehl "Optionen". In der Registerkarte Ansicht schalten Sie die Option „Gitternetzlinien“ aus.
1. Schritt: Starten Sie den Makro-Rekorder Öffnen Sie das Menü "Extras". Wählen Sie den Befehl "Makro" und im Untermenü den Befehl "Aufzeichnen..."
Der Befehl "Aufzeichnen..." im Menü "Extras" / Makro
2. Geben Sie EXCEL einige Informationen... EXCEL fragt Sie zunächst nach einigen Informationen über den aufzuzeichnenden Makro: Im Dialogfeld "Aufzeichnen" legen Sie nähere Einstellungen zu Ihrem Makro fest
© Andrea Herzog Computerschulungen
Seite 6
Visual Basic for Application
EXCEL
-
Makroname EXCEL gibt die Bezeichnung "Makro" gefolgt von einer automatisch angefügten Zahl (1...n) vor. Ersetzen Sie diesen Namen durch "GitternetzlinienEinblenden".
-
Beschreibung EXCEL gibt den in der Abbildung gezeigten Text vor; es verwendet dafür das Computer-Systemdatum und den bei der Installation von EXCEL angegebenen Benutzernamen.
-
Tastenkombination-Shortcut Setzen Sie in dieses Feld den Buchstaben "G". Wenn Sie nach dem Aufzeichnen des Makros später STRG+G drücken, wird EXCEL diesen Makro starten. EXCEL unterscheidet übrigens beim Aufrufen von Makros zwischen Gross- und Kleinbuchstaben. Genau genommen müssen Sie daher STRG+UMSCHALT+G drücken!
-
Speichern in legt fest, wo Ihr Makro gespeichert werden soll:
-
Persönlicher Makro-Arbeitsmappe: Diese Arbeitsmappe erwartet EXCEL unter dem Namen "PERSONL.XLS" im Verzeichnis "XLSTART". Findet EXCEL diese Datei, dann wird sie beim Starten von EXCEL, wie jede in diesem Verzeichnis stehende Datei mit der Endung "XL?", geladen; alle in ihr enthaltenen Makros stehen daher automatisch zur Verfügung. Findet EXCEL die Datei nicht, dann legt es sie an. Achtung: Die Datei wird sofort verborgen, Sie können Sie über das Menü "Fenster" und den Befehl "Einblenden" sichtbar machen.
-
Dieser Arbeitsmappe: Der Makro wird in der gerade aktiven Arbeitsmappe gespeichert. Er ist später nur dann verfügbar, wenn die Mappe geladen worden ist
-
Neuer Arbeitsmappe: EXCEL legt den Makro in eine neue Arbeitsmappe. Er ist später nur dann verfügbar, wenn die Mappe geladen worden ist.
Schliessen Sie diesen Arbeitsschritt durch Drücken der ENTER-Taste oder Mausklick auf den OKSchaltknopf ab. In der Statuszeile, am linken unteren Rand des EXCEL-Fensters, zeigt Ihnen EXCEL mit dem Wort "Aufzeichnung", dass es auf Ihre Befehle wartet.
3. Zeigen Sie EXCEL, was es tun soll Ab jetzt schreibt EXCEL alles mit, was Sie mit Maus oder Tastatur vorzeigen. Führen Sie die folgenden Arbeitsschritte aus: Öffnen Sie das Menü "Extras" Wählen Sie den Befehl "Optionen..." Wählen Sie die Registerkarte "Ansicht" Deaktivieren Sie das Kontrollkästchen "Gitternetzlinien" Schliessen Sie durch Drücken der ENTER-Taste oder Mausklick auf den OK-Schaltknopf das Bearbeiten des Dialogfeldes ab Stoppen Sie über das Menü "Makro" und den Befehl "Makro aufzeichnen" mit "Aufzeichnung beenden" den Makro-Rekorder. © Andrea Herzog Computerschulungen
Seite 7
Visual Basic for Application
EXCEL
Das Kontrollkästchen Gitternetzlinien müssen Sie ausschalten
4. Testen Sie den neuen Makro Fertig. Nun können Sie das Makro "GitternetzlinienEinblenden" testen. Alles, was wir dazu brauchen, ist ein Tabellenblatt wo die Gitternetzlinien eingeblendet sind. Öffnen Sie im Menü "Extras" mit Befehl ”Makro" ”Makros” das gerade aufgezeichnete Makro ”GitternetzlinienEinblenden ". Die zweite Möglichkeit ist der Shortcut STRG+UMSCHALT+G
Abbildung 4: Der Makro-Rekorder protokolliert unsere Anweisung, eine Tabelle ohne
Um zu sehen was aufgezeichnet wurde, wechseln Sie im Menü ”Extras”im Befehl ”Makro” zum Untermenü ”Visual Basic Editor”. Wählen Sie im Fenster links oben das Projekt ”VBAProjekt(Mappe1)” und mit Doppelklick auf den Ordner ”Module” das offene Modul. Nun wird im rechten Fenster der Code angezeigt.
5. Nachbearbeiten Nun wäre es schön, wenn wir die Gitternetzlinien entweder ein oder ausschalten können je nachdem ob in unserem Tabellenblatt Gitternetzlinien eingeblendet sind oder nicht. In unserem Makro steht: ActiveWindow.DisplayGridlines = False
© Andrea Herzog Computerschulungen
Seite 8
Visual Basic for Application
EXCEL
Wenn Sie Gitternetzlinien haben wollten müssten Sie den Befehl auf TRUE setzen. Also wären zwei Makros nötig. Eins zum einblenden und eins zum Ausblenden. Die Eigenschaft NOT ermöglicht aber das hin-und herschalten. ActiveWindow.DisplayGridlines = Not ActiveWindow.DisplayGridlines
Damit ich aber im Fenster einen besseren Überblick habe wechsle ich innerhalb der Befehlszeile die Zeile. Dies mache ich mit einem LEERSCHLAG und einem UNTERSTRICH V_ Die Befehlszeile sieht dann so aus: ActiveWindow.DisplayGridlines = Not _ ActiveWindow.DisplayGridlines
Der "überarbeite" Makro enthält nur noch jene Anweisungen, die wir wirklich geben wollten!
Dem Makro eine Schaltfläche zuordnen Wenn Sie dem Makro noch eine Schaltfläche zuweisen möchten, wählen Sie im Menü Ansicht unter dem Befehl ”Symbolleisten” die Schaltfläche ”Anpassen”. In der Kategorie ”Makro” geben Sie an, ob Sie Ihrem Makro eine Schaltfläche oder eine Menüelement zuweisen. Klicken Sie auf Schaltfläche anpassen und ziehen Sie dieses auf die Formatsymbolleiste.
© Andrea Herzog Computerschulungen
Seite 9
Visual Basic for Application
EXCEL
Mit der Schaltfläche "Auswahl ändern" definieren Sie einen Namen, wählen Sie unter "Schaltflächensymbol auswählen" Ihr Schaltflächenmotiv und weisen Sie der Schaltfläche mit dem Befehl "Makro zuweisen" das aufgezeichnete Makro zu. Mit Hilfe des Kontextmenüs der Symbolleisten können Sie Ihr Symbol mit dem Befehl ”Schaltflächensymbol bearbeiten ”noch gestalten.
Weise n Sie der Schaltfläche Ihr Makro zu
Übrigens können Sie mit dem Befehl "Schalflächensymbol bearbeiten" auch ein ganz neues Symbol gestalten. Mit dem Schaltflächen-Editor können Sie Ihrer Kreativität freien Lauf lassen.
© Andrea Herzog Computerschulungen
Seite 10
Visual Basic for Application
EXCEL
Der Befehl "Schalflächensymbol bearbeiten"
Nun steht Ihnen dieses Makro mit Ihrem gestalteten Symbol in allen Arbeitsmappen zur Verfügung.
Übung 1. Erstellen Sie eine Liste nach Ihrem Bedarf und Ihren Formatierungen und geben dem Tabellenblatt einen Namen. Anschliessend markieren Sie eine Zelle Ihrer Liste. 2. Erstellen Sie nun ein Makro, mit welchem Sie die Tabelle Optimieren 3. Wählen Sie im Menü Extras den Befehl ”Makro aufzeichnen” und die einfache ”Aufzeichnung” 4. Im weiteren Dialogfenster geben Sie den Namen des Makros ein, z.B. Tabelle_Optimieren 5. Unterhalb geben Sie die Beschreibung ein, damit Sie auch wissen, was bei diesem Makro passiert .z.B. Das Makro markiert den aktuellen Bereich und setzt sowohl Spaltenbreite als auch Zeilenhöhe auf die optimale Grösse. 6. Definieren Sie einen Shortcut für Ihr Makro z.B. und bestätigen Sie die Einstellungen mit OK 7. Nun beginnt die Makro Aufzeichnung: 8. Mit der Tastenkombination <Shift> markieren Sie den Listenbereich 9. Im Menü Format / Spalte optimieren Sie mit dem Befehl ”Optimale Breite” die Breite der Spalten 10. Das Gleiche führen Sie für die Zeilen durch: Menü Format / Zeile / Optimale Höhe 11. Am Ende können Sie das Makro mit der Schaltfläche ”Makro-Aufzeichnung beenden.” Wechseln Sie nun zum Visual Basic Editor. Schauen Sie sich den Eintrag einmal an. Die Programmiersprache ist sehr einfach und verständlich, nicht wahr?
© Andrea Herzog Computerschulungen
Seite 11
Visual Basic for Application
EXCEL
Das Makro ”Tabelle_Optimieren” können Sie nun mit dem definierten Shortcut ausführen.
© Andrea Herzog Computerschulungen
Seite 12
Visual Basic for Application
EXCEL
Der Visual Basic Editor Wir haben unseren ersten Makro, "GitternetzlinienEinblenden", mit dem Makro-Rekorder erstellt und über das Menü "Extras" zum Laufen gebracht. Das genügt bei einem so einfachen Programm. Bevor wir aber ans wirkliche VBA-Programmieren gehen, wollen wir die Werkzeuge kennenlernen, die EXCEL uns zur Verfügung stellt. Sie sind in der Symbolleiste "Visual Basic" enthalten.
Die Fenster des Visual Basic Editors Wechseln Sie bitte wieder zum VB Editor. Zum Beispiel in der Taskleiste oder über die Tastenkombination Grundsätzlich wird in zwei Fenster unterteilt. Das linke ist das Projektfenster und das rechte ist das Modulfenster. Diese Fenster können Sie an den Rändern verschieben und wie gewohnt anordnen.
Das Projektfenster Der Projektexplorer zeigt alle möglichen Einzelteile an, in denen Ihr Programm gespeichert werden kann. Das Fenster kann über das Menü ”Ansicht” eingeblendet werden. Ihr Programmcode ist meistens mit der Arbeitsmappe, die Sie offen haben verbunden. Wenn Sie das Programm universal brauchen wollen, sollten Sie es in der persönlichen Arbeitsmappe ”PERSONL.XLS” abspeichen. Für Excel haben Sie die Arbeitsmappe, das einzelne Tabellenblatt und das Diagrammblatt zum Abspeichern zur Verfügung. Des weiteren haben Sie Module. In den Modulen werden Ihre aufgezeichneten Makros automatisch abgespeichert. In den Formularen (Forms) werden die Dialogblätter abgelegt. Das sind Dialogfenster die Sie den Benutzern zur Verfügung stellen.
© Andrea Herzog Computerschulungen
Seite 13
Visual Basic for Application
EXCEL
Der Programmcode Jedes Programm, das Sie schreiben, muss als Programm gekennzeichnet werden. Es wird durch das Schlüsselwort Sub NAME
eingeleitet. Wenn Sie die ENTER-Taste drücken wird weiter unten ein End Sub
und hinter dem NAME zwei Klammern. Sub Name()
End Sub
Der Name kann bis zu 80 Zeichen lang sein, darf keine Leer- und Sonderzeichen enthalten. Unterstriche sind erlaubt. Z.B.: Sub MeinErstesMakro() oder Sub mein_erstes_makro() Der Name des Programms muss eindeutig sein. Keine Schlüsselwörter wie zum Beispiel: -
Objekte der verschiedenen Programme: ActivWorksheet, Cells, Font, Table…
-
Befehle und Anweisungen: GoTo. Dim, As, if While…
-
Funktionen: Sin, Cos, Date, Year…
-
Logische Operationenen: And, Or, Not
Vergeben Sie deutsche Namen, damit Sie Verwechslungen mit Schlüsselwörtern aus dem Weg gehen.
Kommentar Der grüne Text ist der Kommentar, den Sie selber als Erklärung hinzufügen können. Kommentare werden durch ein Hochkomma ’ oder REM eingeleitet.
© Andrea Herzog Computerschulungen
Seite 14
Visual Basic for Application
EXCEL
Eingabeerleichterungen Grundsätzlich muss eine Anweisung auf einer Codezeile stehen. Damit Sie im Modulfenster den Überblick bewahren können, ist es sinnvoll eine Zeilenschaltung am Ende des Fensters einzufügen, wenn Sie längere Befehlszeilen haben, fügen Sie einen Leerschlag und einen Unterstrich ein. Es sind maximal 10 ”Zeilenschaltungen” möglich. Arbeiten Sie bei verschachtelten Anweisungen, dem Überblick zu liebe, mit Tabulatoreinzügen. Sub Noten() Note = InputBox("Welche Note hast Du erzielt?") If Note > 5.5 Then MsgBox "Sehr gut !" Else If Note > 4.5 Then MsgBox "Gut !" Else MsgBox "Ja nu !" End If End If End Sub
Die VBA Symbolleiste
Formular erstellen Zu Excel wechseln Makro ausführen Makro anhalten Makro beenden 1 Entwurfsmodus Projektexplorer einblenden Eigenschaftsfenster einblenden Objektkatalog einblenden
Autocomplete Neu im VBA werden die Elemente automatisch angezeigt. Dies erleichtert die Programmierung enorm und reduziert auch die Tippfehler. Sie können mit dem Cursor das gewünschte Element anwählen und mit der Leerschlagtaste bestätigen. Dann wird der Text automatisch an dieser Position eingefügt.
1
Im Entwurfsmodus wird der Code des Projekts nicht abgearbeitet, und Ereignisse vom Host oder Projekt werden nicht ausgeführt.
© Andrea Herzog Computerschulungen
Seite 15
Visual Basic for Application
EXCEL
Das Meldungsfenster (MessageBox) Die einfachste Methode, etwas zu programmieren und sichtbar auf den Bildschirm zu bringen besteht mit dem Befehl MsgBox. Schreiben Sie grundsätzlich alle Anweisungen und Befehle klein. VBA untersucht nach dem Verlassen der Codzeile nach bekannten Schlüsselwörtern. Also, was melden Sie? Sub Mitteilung() MsgBox ”Fangen wir mit dem Programmieren an?” End Sub
Um das Programm auszuführen klicken Sie einfach auf die Schaltfläche ”Makro ausführen” der Symbolleiste des Visual Basic Editors.
in
Achten Sie aber darauf, dass der Courser innerhalb der Prozedur steht. Wenn Sie msgbox und einen Leerschlag eingeben erscheint die AutoComplete- Funktion für diesen Befehl und macht Ihnen einen
Syntaxvorschlag. In den eckigen Klammern sind optionale Elemente dieses Befehls. MsBox(Aufforderungstext, [Schaltflächen], [Titel des Dialogfensters], [Hilfedatei], Contextnummer]) Also würde auch MsgBox (”Fangen wir mit dem Programmieren an?”)
oder MsgBox prompt:=”Fangen wir mit dem Programmieren an?”
funktionieren.
© Andrea Herzog Computerschulungen
Seite 16
Visual Basic for Application
EXCEL
Schaltflächen Standardmässig hat die Meldungsbox nur die Schaltfläche OK Kennung
Systemkonstante
1.Schaltfläche
2.Schaltfläche
3.Schaltfläche
0
VbOkOnly
OK
1
VbOkCancel
OK
Abbrechen
2
VbAbortRetryIgnore
Abbrechen
Wiederholen
Ignorieren
3
VbYesNoCancel
Ja
Nein
Abbrechen
4
VbYesNo
Ja
Nein
5
VbRetryCancel
Wiederholen
Abbrechen
VbMsgBoxHelpButtom
OK
Hilfe
Sub Mitteilung() MsgBox prompt:=”Fangen wir mit dem Programmieren an?”, _ Buttons:=vbYesNo End Sub
Der Text müsste in einer Zeile Stehen durch den (” _”) Unterstrich kann die Befehlszeile auf einer neuen Zeile fortgesetzt werden.
Eine andere Möglichkeit der Codedarstellung wäre: MsgBox prompt:=”Fangen wir mit dem Programmieren an?”, _ Buttons:=4
Oder wesentlich eleganter: MsgBox ”Fangen wir mit dem Programmieren an?”,4
Der Syntax legt die Reihenfolge der Elemente fest. Das erste Element ist der Meldungstext und der zweite die Schaltflächen. Es stehen Ihnen aber noch weitere Gestaltungsmittel zur Verfügung:
Die Symbole und mit ENTER ausgelöst wird.
© Andrea Herzog Computerschulungen
und welche Schaltfläche die aktivierte Schaltfläche ist
Seite 17
Visual Basic for Application
EXCEL
Kennung
Systemkonstante
Aktivierte Schaltfläche
16
VbCritical
Stop
32
VbQuestion
Fragezeichen
48
VbExclamation
Ausrufezeichen
64
VbInformation
Informationssymbol
128
VbDefaultButton1
Erste
256
VbDefaultButton2
Zweite
512
VbDefaultButton3
Dritte
768
VbDefaultButton4
Vierte
Symbol
Titel MsgBox ”Fangen wir mit dem Programmieren an?”,3+32+512,”Programmieren”
Syntax: MsgBox ”Meldungtext”, Schaltflächen, ”Titel”
© Andrea Herzog Computerschulungen
Seite 18
Visual Basic for Application
EXCEL
Achtung! Sie können die verschieden Teile des Meldungsfensters entwederdurch ihre Position oder durch Ihren Namen definieren. MsgBox "Die Antwort ist falsch!",0,"Antwortfenster"
Wenn Sie die Argumente durch Ihren Namen angeben, können Sie sie in jeder beliebigen Reihenfolge anordnen. Syntax Name:="Text" MsgBox Title:="Antwortfenster", Prompt:="Die Antwort ist falsch!"
Helpfile und Context Wenn Sie die Konstante vbMsgBoxHelpButton eingefügt haben, können Sie diese an eine Hifedatei knüpfen, die auch erscheint, wenn F1 gedrückt wird. MsgBox ”Fangen wir mit dem Programmieren an?”, _ vbMsgBoxHelpBotton, ”Programmieren”, ”C:\Winnt\easy.hlp”,0
© Andrea Herzog Computerschulungen
Seite 19
Visual Basic for Application
EXCEL
Eingabefeld (InputBox) Mit der Funktion InputBox kann der Benutzer eigene Eingaben machen. Da der eingegebene Text weiterverarbeitet wird muss die Eingabe an eine Variable übergeben werden. Zum Beispiel: Sub Frage() Wunsch = InputBox("Was möchten Sie als nächstes tun?") End Sub
Der Syntax ist wieder ähnlich
Inputbox (Eingabe, Titel, Vorgegebener Text, Position auf dem Bildschirm, Helpfile, Context, As String)
Die Variable ”Wunsch” wird mit dem eingegebenen Inhalt gefüllt und weiterverarbeitet. Z.B. Wird die Eingabe in einer MessageBox ausgegeben.
Default Mit Default geben Sie einen Wert vor, der mit der Eingabe ersetzt wird. Sub Frage2() Wunsch = InputBox("Was möchten Sie als nächstes tun?", _ "Frage", "eine Pause machen") End Sub
© Andrea Herzog Computerschulungen
Seite 20
Visual Basic for Application
EXCEL
Variablen, Konstanten und Datenfelder Variabeln Der Benutzer macht eine Eingabe und diese Daten werden verarbeitet, ausgewertet und wieder ausgegeben. Das ist das Prinzip der Datenverarbeitung (EVA !) Damit aufgenommene Daten wieder ausgegeben werden können, werden sie in Behälter, sogenannte Variablen ”versorgt”. Variablen können zu Beginn des Programms deklariert werden, müssen aber nicht. Mit der Variablendeklaration legen Sie fest, was für Datentypen ihre Variable enthalten kann. Falls einer Variable, die nur Zahlen beinhalten kann Text übergeben wird, kommt es zu einer Fehlermeldung. Eine Variable besteht also aus ihrem Namen und ihrem Inhalt. Beispiel: Hier füllen Sie das Ergebnis der Inputbox in die Variable Wunsch und machen diese im Dialogfenster sichtbar. Sub Frage2() Wunsch = InputBox("Was möchten Sie als nächstes tun?", _ "Frage", "eine Pause machen") Msgbox Wunsch End Sub
Achtung! Sie müssen Argumente der Inputbox in Klammern angeben, um den Wert einer Variablen zuzuweisen. Geben Sie keine Klammern an, gibt es eine Fehlermeldung oder wird der Rückgabewert ignoriert oder keine Argumente übergeben. Es spielt aber keine Rolle, ob die Argumente durch ihre Position oder Ihren Namen angegeben werden.
© Andrea Herzog Computerschulungen
Seite 21
Visual Basic for Application
EXCEL
Die Funktion Date liefert das aktuelle Datum. Diese kann an eine Variable übergeben und dem Benutzer sichtbar gemacht werden. Sub Datum() heute = Date MsgBox heute End Sub
Heute ist als der Behälter für das aktuelle Datum. Die Variable könnte genausogut eine Berechnung beinhalten. Z.B. Sub Gehalt() lohn = 4 * 1245.65 MsgBox lohn End Sub
Sub JahresGehalt() lohn = 4 * 1245.65 lohn = lohn * 13 MsgBox lohn End Sub
Variablendelklaration In Excel ist es nicht nötig, eine Variablendeklaration zu machen, es hat aber auch Vorteile. Da VBA jede Zeile auf Fehler überprüft, findet VBA bei einer expliziten Deklaration am Anfang des Programms auch sofort Tippfehler. Eine Variablendeklaration steht immer am Anfang des Programms und hat folgenden Syntax: Sub Makroname () Dim Variablenname As[Variablentyp] ..... End Sub
Wenn Sie wünschen, dass alle Variablen deklariert werden müssen, so beginnen Sie das Programm im Modulblatt mit Option Explicit Wenn Sie nun einen Variablennamen benutzen, der nicht definiert ist, erhalten Sie sofort eine Fehlermeldung. Im Menü ”Extras” unter dem Befehl ”Optionen” finden Sie ein Kontrollkästchen, wo Sie die Variablendeklaration standardmässig auf Explizit setzen können. Wenn Sie eine Variable innerhalb der Prozedur verwenden gilt Sie nur für diese Prozedur. Wenn Sie die Variable auch für andere Prozeduren verwenden wollen, definieren Sie sie noch vor der ersten Prozedur nach Option Explicit. Diese Variablendeklaration ist auch ”privat” also nur innerhalb dieses Moduls, wenn Sie die Variable auch in anderen Modulen verwenden wollen, sollten Sie sie mit der Definition „Public“ für das ganze Projekt definieren. Public Variablennamen As Variablentyp
© Andrea Herzog Computerschulungen
Seite 22
Visual Basic for Application
EXCEL
Datentypen (Variablentypen) Folgende Datentypen stehen zur Verfügung Ganzzahlen, Dezimalzahlen, Währungen, Zeitangaben und Zeichenketten. Die wichtigste Unterscheidung wird zwischen Zahlen und Zeichen gemacht. Mit ”Sonntag” oder ”neunhundertsechsundsiebzig” kann VBA nicht rechnen und ein Meldungsfenster kann nur Text ausgeben und eine InputBox nur Text aufnehmen Zahlen bis +/-32768
Integer
Dim Hausnummer As Integer
Dim Hausnummer%
Zahlen bis +/- 2'147'483‘648
Long
Dim Kontonummer As Long
Dim Kontonummer&
Oder noch grössere Zahlen +/- 1.67^38
Single
Dim Gewicht As Single
Dim Gewicht!
Massiv grösser +/- 1.67^308
Double
Dim Lichtjahre As Double
Dim Lichtjahre#
Datum
Date
Dim Heute As Date
Währung
Currency
Dim Lohn As Currency
Dim Lohn@
Text bis 65535 Zeichen Dim Vorname As String
Dim Vorname$
Wenn Sie mehrere Variablen Deklarieren müssen geben Sie jedes mal Variablennamen und Variablentyp an, auch wenn Sie jedes mal den gleichen Varablentyp nehmen. Also: Dim Zahl1 As Integer, Zahl2 As Integer, Zahl3 As Integer
© Andrea Herzog Computerschulungen
Seite 23
Visual Basic for Application Datentyp Variablentyp
Symbol Bereich
Boolean Ganzzahlen
EXCEL Beispiel
Speicherbedarf
True oder False (Zahl 0 oder 0)
True, False
2 Bytes
Integer
%
-32‘768 bis 32‘767.
7, 245, 12‘563
2 Bytes
Long
&
-2‘147‘483‘648 bis 2‘147‘483‘647.
123456789
4 Bytes
!
-3.402823E38 bis –1.401298E-45 für negative Werte. 1.401298E-45 bis 3.402823E38 für positive Werte.
(Gleitkommazahl mit 4 Bytes einfacher Genauigkeit)
-1.79769313486232E308 bis -4.94065645841247E-324 für negative Werte. 4.94065645841247E-324 bis 1.79769313486232E308 für positive Werte.
(Gleitkommazahl mit 8 Bytes doppelter Genauigkeit)
-922‘337‘203‘685‘477.5808 bis 922‘337‘203‘685‘477.5807
CHF 5968.95
8 Bytes
1.1.100 bis 31.12.9999
1.1.2000
8 Bytes
Ca. 2 Milliarden
”Dies ist ein langer Text”
10 Bytes + Länge der Zeichenkette
Dezimal- Single zahlen
Double
Currency (skalierte Ganzzahl) Datum
Date
Text
String
#
@
$
0.25
123456789* 10 100
”Dies ist ein Titel” Variant
Jeder numerische Wert
22 Bytes
Im Bereich Double, jeder String
+Länge der Zeichenkette
© Andrea Herzog Computerschulungen
Seite 24
Visual Basic for Application
EXCEL
Konstanten Konstanten sind mit Variablen vergleichbar, sie haben aber nicht einen flexiblen Inhalt sonder einen fixen. Sie ersparen unnötige Tipperei und vermeiden Tippfehler. Der Syntax ist Const Konstantennamen = Wert Sub Kugel() Const Pi = 3.14159265359 Dim Radius As Double Dim volumen As Double Radius = InputBox("Wie gross ist der Radius?") volumen = Pi * Radius ^ 3 MsgBox "Das Volumen der Kugel ist " & volumen End Sub
Datenfelder (Arrays) Wenn Sie eine grosse Anzahl von Variablen benötigen, die miteinander in Beziehung stehen, benutzen Sie Arrays. Z. B. Monate, Wochentage... Achten Sie darauf, dass die Zählung bei 0(Null) beginnt also 12 Montate
Dim Monate(11) As String
7 woche
Dim woche(6) As String
Danach können Sie den einzelnen Variablen Werte übergeben. Dim Woche(6) As String Woche(1) = "Montag" Woche(2) = "Dienstag" Woche(3) = "Mittwoch" Woche(4) = "Donnerstag" Woche(5) = "Freitag" Woche(6) = "Samstag" Woche(7) = "Sonntag"
© Andrea Herzog Computerschulungen
Seite 25
Visual Basic for Application
EXCEL
Formeln, Funktionen und Verknüpfungen Rechenoperation
Operationszeichen
Addition (Plus)
+
Subtraktion (Minus)
-
Multiplikation (Mal)
*
Division (Durch)
/
Potenz (Hoch)
^
Achtung! Punkt vor Strich Regel Multiplikation und Division werden vor Addition und Subtraktion gerechnet 3+4*5=23
erst
(3+4)*5=35
Beachten Sie dass Sie für die Dezimalstelle einen Punkt ”.” setzen. Übrigens kann in VBA nicht mit dem Prozentzeichen gerechnet werden. MwSt = Preis * 0.065 und nicht MwSt = Preis *6.5% Sub Gehalt3() stdlohn = InputBox("Geben Sie Ihren Stundenlohn an") lohn = stdlohn * 36 * 4 lohn = lohn - lohn / 100 * 13.82 ´oder lohn=lohn-lohn * 0.1382 MsgBox lohn End Sub
Wenn Sie Zeichenketten miteinander verknüpfen wollen setzen Sie entweder ”&” oder ”+”. Sub Namensmakro() Nachname$ = InputBox("Wie heißen Sie? (Vorname und Nachname)") Geburtstag$ = InputBox("Wann sind Sie geboren?") MsgBox "Guten Tag ”& Nachname & ", Sie sind am " & _ Geburtstag & " geboren." End Sub
© Andrea Herzog Computerschulungen
Seite 26
Visual Basic for Application
EXCEL
Die MessageBox hätte auch mit ”+” zusammengesetzt werden können. MsgBox "Guten Tag " + Nachname + ", Sie sind am " + _ Geburtstag + " geboren."
Achten Sie darauf, dass Text immer in Anführungszeichen steht. Die Variablen Nachname und Geburtstag sind nicht in Anführungszeichen. Also: ”Text 1” & Variable & ”Text 2” & Variable2 & ”Text3”
Vielleicht stört es Sie, dass die MessageBox so breit ist. Natürlich können Sie auch angeben, wo der Text umgebrochen werden soll. Dies machen Sie mit dem Code ”Chr$(13)” und fügen somit eine Absatzschaltung ein. Achten Sie darauf, dass dieser Code wieder separat mit einem ”&” und ausserhalb des Textes hinzugefüg werden muss. Also: ”Text 1” & Variable & Chr$(13) & ”Text 2” & Variable2 & ”Text3” MsgBox "Guten Tag " & Nachname & Chr$(13) & "Sie sind am " & _ Geburtstag & " geboren."
Zeichen
Code
Code
!
Chr$(9)
VbTab
"
Chr$(13)
VbCr
Analog Chr(10) Zeilenvor schub ″
Chr$(34)
′
Chr$(39)
© Andrea Herzog Computerschulungen
Seite 27
Visual Basic for Application
EXCEL
Vergleiche Mathematische Vergleiche
Operator
Beschreibung
=
Gleich
Grösser als
=
Grösser oder Gleich
Ungleich
Like
Stringvergleich
Logische Vegleiche
Operator
Beschreibung
Not
Negation (Nicht)
And
Logisches Und
Or
Logisches Oder (das eine oder das andere)
Xor
Exklusives Oder (weder das eine noch das andere)
Is
Vergleich von Objektvariablen
Mathematische Funktionen Funktionsname
Bedeutung
sqr
Quadratwurzel
Sin
Sinus
Cos
Cosinus
Tan
Tangerus
\
Ganzahliges Ergebnis bei Division
© Andrea Herzog Computerschulungen
Seite 28
Visual Basic for Application
EXCEL
Excelfunktionen Funktionsname Funktionsname in Excel
Bedeutung
DDB
GDA
SYD
DIA
SLN
LIA
FV
ZW
RATE IPMT
ZINS ZINSZ
PMT PPMT PV
RMZ KAPZ NBW
Die Abschreibung eines Anlageobjektes nach der geometrisch degressiven Methode für einen bestimmten Zeitraum Die nach der arithmetischen Methode für einen bestimmten Zeitraum Die Abschreibung eines Anlageobjektes nach der Lineare Methode für einen bestimmten Zeitraum Der Endwert einer Annuität ausgehend von regelmässigen Zahlungen und einem konstanten Zinssatz Der Zinssatz einer Annuität Der Zinsanteil einer Annuität für einen spezifischen Zeitraum Zahlung einer Annuität Der Kapitalanteil einer Annuität Der Barwert einer Annuität
Funktionen für Stringvariablen Funktion Left$ Right$ Ltrim$ Trim$ Len Val Str$ Lcase Ucase Space
Bedeutung Schneidet eine bestimmte Anzahl von Zeichen von links ab Schneidet eine bestimmte Anzahl von Zeichen von rechts Löscht Leerzeichen am Anfang eines Strings Löscht Leerzeichen am Ende eines Strings Ermittelt die Anzahl Zeichen einer Zeichenkette Wandelt einen Zahlenstring in eine Zahl um Wandelt eine Zahl in einen String um Wandelt die Zeichenkette in Kleinbuchstaben um Wandelt die Zeichenkette in Grossbuchstaben um Gibt eine folge von Leerzeichen aus
© Andrea Herzog Computerschulungen
Beispiel Left$(„Hans Meier“,4) ergibt Hans Left$(„Hans Meier“,4) ergibt eier
Len(„Hans Meier“) ergibt 10 Wichtig, um mit Variablen von Inputboxen zu rechnen
„Hans“ & Space(3) „Meier“ ergibt Hans Meier
Seite 29
Visual Basic for Application
EXCEL
Datumsfunktionen Funktionsname Date Now Time DateSerial DateValue TimeSerial TimeValue DateAdd
DateOff
Intervallerklärung First Day of Week
First Week of Year
Day, Month, Year, Hour, Minute, Second Weekday
Bedeutung setzt das aktuelle Systemdatum ein oder stellt das Systemdatum um Gibt das Systemdatum und die Aktuelle Zeit an. setzt die aktuelle Systemzeit ein oder stellt die Systemzeit um Gibt die fortlaufende Datumszahl eines Datums zurück: DateSerial(Year,Month,Day) Gibt das Datum eines String-Arguments zurück Gibt eine fortlaufenden Zeitwert für eine aus Stunden, Minuten und Sekunden bestehende Uhrzeit zurück Wandelt einen String in eine Uhrzeit um Addiert oder subtrahiert ein angegebenes Intervall zu einem oder von einem Datum DateAdd(Intervall, Anzahl, Datum) Gibt die Anzahl der Zeitintervalle zurück, die zwischen zwei Datumsangaben liegen. DateDiff(Intervall, Date1, Date2,[firstDayofWeek], [FirstWeekofYear]) D=Tag, Y=Kalendertag, W=Wochentag, WW=Woche, M=Monat, Q=Quartal, YYYY=Jahr, S=Sekunde, N=Minute, H=Stunde Wenn keine Angabe wird Sonntag als erster Wochentag genommen Für Sie wäre Einstellung der Application 0 (vbUseSystem) richtig ansonsten 1 (Sonntag )...7 (Samstag) Wenn keine Angabe wird die Woche verwendet, die den 1. Januar enthält. Für Sie wäre Einstellung der Application 0 (vbUseSystem) richtig ansonsten 1 (Woche mit 1.Januar ),2.(VbfirstfourDays) Woche mit mind. 4 Tagen, 3 (VbFirstFullWeek) erste volle Woche Filtert den jeweiligen Teil aus Datum und Zeit
Gib die Zahl des Wochentags an. Weekday(Date,[FirstDayofWeek]) Siehe Syntax FirstDayofWeek
© Andrea Herzog Computerschulungen
Seite 30
Visual Basic for Application
EXCEL
Benutzerdefinierte Funktionen Die Funktion wird wie eine Prozedur aufgebaut. Der Syntax lautet: Function FunktionsName(Argument1, Argument2,...) FunktionsName=Argument1*Argument2 End Function Function Mehrwertsteuer(Betrag) Mehrwertsteuer = Betrag * 0.065 Ende Function
Function Meter(Fuss) Meter = Fuss / 3.2808 End Function
© Andrea Herzog Computerschulungen
Seite 31
Visual Basic for Application
EXCEL
Function Rendite(Investition, Einnahme) Rendite = (Einnahme - Investition) / Investition End Function
Function Nettolohn(Lohn; AHV; NBU; PK; ALO) Nettolohn = Lohn - AHV * Lohn - NBU * Lohn - PK * Lohn - ALO * Lohn End Function
Function Warenkalkulation(Einstandspreis, Gemeinkosten, Reingewinn, Mwst) Warenkalkulation = ((Einstandspreis + Einstandspreis * Gemeinkosten) + _ Reingewinn * (Einstandspreis + Einstandspreis * Gemeinkosten)) + Mwst * _ ((Einstandspreis + Einstandspreis * Gemeinkosten) + Reingewinn * _ (Einstandspreis + Einstandspreis * Gemeinkosten)) End Function
Die benutzerdefinierten Funktionen stehen Ihnen in Excel im Menü ”Einfügen” im Dialogfenster ”Funktion” in der Kategorie ”Benutzerdefiniert” zur Verfügung.
© Andrea Herzog Computerschulungen
Seite 32
Visual Basic for Application
EXCEL
Formatierungen Für die Formatierungen verwenden Sie die gleichen Zeichen, wie für die benutzerdefinierten Formate in Excel. Zeichen
Beschreibung
kein Zeichen
keine Formatierung
0
Beliebige Ziffer
Beispiel
Format(123,“0“) = 123 Format(123,“0.00“) = 123.00 Format(123.123,“0“ = 123 Format(123.123,“0.00“ = 123.12
#
Platzhalter für eine Ziffer, die nur angezeigt wird, wenn an sich an dieser Stelle eine Ziffer befindet (Tausendertrennzeichen)
Format(12345, „#’###.00“) =1’2345.00$ Format(123,“ #’###.00“) =123.00
%
Multipliziert die Zahl mit 100 und fügt ein Format(0.15,“0.00%“) = 15.00% % Zeichen an
+-$ Leerzeichen
Können zur Darstellung direkt eingefügt werden
Format(12345,“ #’###.00 $“)
\
Zeigt das nächste Zeichen als Zeichen anstatt als Formatierung an. Das „\“ verschwindet in der Anzeige
Format(12345,“ #’###.00 \L\i\r\e“)
=1’2345.00 $
= 1’2345.00 Lire
Datumsformate Zeichen
Beschreibung
Beispiel
/
Datumstrennzeichen
d
Tag
1
dd
Tag
01
ddd
Tag
So
dddd
Tag
Sonntag
ddddd
Zeigt das vollständige Datum
Format(„20/8/98“,dddddd“) = 20.8.98
dddddd
Format(„20/8/98“,dddddd“) =Donnerstag, 20. August 98
w
Liefert den Wochentag 1=Sonntag, 7=Samstag
© Andrea Herzog Computerschulungen
Seite 33
Visual Basic for Application
EXCEL
ww
liefert die Kalenderwoche
2
m
Monat als Zahl
12
mm
Monat als Zahl mit vorgestellter Null
08
mmm
Abgekürzter Monat
Jan
mmmm
Ausgeschriebener Monat
Januar
q
ergibt das Quartal
1
yy
stellt die Jahreszahl zweistellig dar
99
yyyy
Stellte die Jahreszahl vierstellig dar
1999
Zeitformate Zeichen
Beschreibung
:
Zeittrennzeichen
h
Stunde ohne vorgestellter Null
2:4
hh
Stunde mit vorgestellter Null
02:4
n oder m
Die Minute ohne vorgestellter Null
2:4
nn mm
Die Minute mit vorgestellter Null
2:04
s
Die Sekunde ohne vorgestellter Null 2:4:6
ss
Die Sekunde mit vorgestellter Null
2:4:06
ttttt
Die vollständige Zeitangabe
Format(„2:4“,“ttttt“) 02:04:00s
© Andrea Herzog Computerschulungen
Beispiel
Seite 34
Visual Basic for Application
EXCEL
Schleifen Hier Beispiele für die verschiedenen Schlaufen und ein Anwendungsbeispiel zum Vergleich. Sie wollen Zahlen von 1 bis zu einer beliebigen Zahl, die Sie eingeben zusammen zählen. Also:geben Sie 5 an wird 1+2+3+4+5 gerechnet und die Summe ist 15.
© Andrea Herzog Computerschulungen
Seite 35
Visual Basic for Application
EXCEL
If…Then…Else…End IF Der Syntax lautet: If Bedingung, Then Anweisung1, Else Anweisung2 Sub Noten1() Note = InputBox("Welche Note hast Du erzielt?") If Note > 4.5 Then MsgBox "Gut!" Else MsgBox "Ja nu!" End If End Sub Sub Noten2() Note = InputBox("Welche Note hast Du erzielt?") If Note > 5.5 Then MsgBox "Sehr gut!" Else If Note > 4.5 Then MsgBox "Gut!" Else If Note > 3.5 Then MsgBox "Ja nu!" Else MsgBox "Bedenklich!" End If End If End If End Sub Sub Alter_in_Jahren() Gebdatum = InputBox("Wann sind Sie geboren? ") Jalter = Year(Date) - Year(Gebdatum) If Month(Date) < Month(Gebdatum) Then Jalter = Jalter - 1 Else If Month(Date) = Month(Gebdatum) Then If Day(Date) < Day(Gebdatum) Then Jalter = Jalter - 1 End If End If End If MsgBox "Sie sind " & Jalter & " Jahre alt. " End Sub
© Andrea Herzog Computerschulungen
Seite 36
Visual Basic for Application
EXCEL
Case-Verzweigung Wenn Sie das verschachtelte Notenbeispiel anschauen, dann kann so eine verschachtelte IF Verzweigung ganz schön unübersichtlich werden. Da hilft die Case Verzweigung aus. Syntax: Select Case Variable Case Wert1 Anweisung1 Case Wert2 Anweisung2 Case Wert3 Anweisung3 … [Case Else] [Letzte Anweisung] End Select Sub Noten3() Note = InputBox("Welche Note hast Du erzielt?") Select Case Note Case Is > 5.5 MsgBox "Sehr gut!" Case Is > 4.5 MsgBox "Gut!" Case Is > 3.5 MsgBox "Ja nu!" Case Else MsgBox "Bedenklich!" End Select End Sub Sub Geburtstag() Alter$ = InputBox("Bitte gib Dein Alter an!", "Alter") Select Case Val(Alter$) Case Is < 13 Beschreibung$ = "Kid" Case 13 To 19 Beschreibung$ = "Teenager" Case 20 To 29 Beschreibung$ = "Twen" Case 30 To 39 Beschreibung$ = "Jupie" Case 40 To 49 Beschreibung$ = "UFü" Case Is > 50 Beschreibung$ = "Uhu" End Select MsgBox "Du bist ein " & Beschreibung$, vbInformation End Sub
© Andrea Herzog Computerschulungen
Seite 37
Visual Basic for Application
EXCEL
For…Next In der For…Next-Schleife wird eine Variable definiert. Im zweiten Schritt wird diese Variable weiter gezählt. Sie wird so lange vergrössert, bis der Endwert erreicht ist. For Zähler = Anfangswert To Endwert [Step](Schrittweite)
Sub Zählen()
Anweisungen
For Zähler = 1 To Val(x)
Next [Zähler]
x = InputBox("Bitte Zahl angeben")
Summe = Summe + Zähler Next MsgBox " die Summe lautet: " & Summe End Sub
Sub Fünferreihe() For Zähler = 0 To 50 Step 5 MsgBox " Nun sind wir bei " & Zähler Next End Sub
Vielleicht setzen Sie noch ein ”Beep” als Soundeffekt hinter das Meldungsfenster.
© Andrea Herzog Computerschulungen
Seite 38
Visual Basic for Application
EXCEL
Do…Loop Until Mit Do…Loop Until wird eine Bedingung überprüft. Ist sie korrekt, wird weitergearbeitet, falls nicht, wird die Schleife verlassen. Sub Zählen2()
Der Syntax lautet:
x = InputBox("Bitte Zahl angeben")
Do
Zähler = 1
Anweisung
Do Until Zähler = Val(x) + 1
[Exit Do]
Summe = Summe + Zähler
Loop until
Zähler = Zähler + 1 Loop MsgBox " die Summe lautet: " & Summe End Sub
Do While
Ist eine Variante von Do…Loop Until. Der Unterschied ist die Überprüfungsart. Do While weist ab, wenn die Bedingung nicht stimmt, Do…Loop wird immer betreten.
[...] [Exit Loop] Loop
While…Wend While…Wend ist ebenfalls eine abweisende Schleife. Der Syntax lautet: While Bedingung
Sub Zählen1() x = InputBox("Bitte Zahl angeben") Zähler = 1
Anweisung Wend
While Zähler das Makro unterbrechen. Sub Endlos() x = InputBox("Bitte Zahl angeben") Zähler = 1 While Zähler