Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

VBA für Excel VBA für Excel

Ähnliche Präsentationen


Präsentation zum Thema: "VBA für Excel VBA für Excel"—  Präsentation transkript:

1 VBA für Excel VBA für Excel 22.02.2010
eine Einführung in das Programmieren mit „Visual Basic for Applications“ speziell (aber nicht nur) für Excel unter Windows Andreas Rozek HyMeSys Software & Consulting Brunnenstraße 30/2 71032 Böblingen Telefon: (07031) URL: Andreas Rozek HyMeSys Software & Consulting 1

2 Organisatorisches • Theorie: von 900 Uhr bis 1200 Uhr
VBA für Excel Organisatorisches • Theorie: von 900 Uhr bis 1200 Uhr • Praxis: von 1300 Uhr bis 1700 Uhr • Anwesenheitsliste → Teilnahmebestätigung • begleitende Literatur Christian Friedrich „Einstieg in VBA mit Excel“ Galileo Computing ISBN ca € Andreas Rozek HyMeSys Software & Consulting 2

3 Zum Einstieg... VBA für Excel 22.02.2010 Andreas Rozek
HyMeSys Software & Consulting 3

4 Zum Einstieg... VBA für Excel 22.02.2010 Andreas Rozek
HyMeSys Software & Consulting 4

5 Überblick über den Kurs
VBA für Excel Überblick über den Kurs Montag Grundlagen (Syntax & Semantik von VBA) Dienstag Das Excel-Objektmodell Mittwoch Ereignis-gesteuerte Programmierung Formular- und ActiveX-Steuerelemente Donnerstag Eingabeformulare, Programmentwicklung (Anmeldeformular, Zahlen-Memory) Freitag weiterführende Themen ( , Web, usw.) Verwendung externer Objekte, Sudoku Andreas Rozek HyMeSys Software & Consulting 5

6 Lernziele Idealerweise sollten Sie am Ende dieses (Crash-)Kurses
VBA für Excel Lernziele Idealerweise sollten Sie am Ende dieses (Crash-)Kurses • wissen, daß man die Funktionalität von Excel mit VBA erheblich erweitern kann; • einen ungefähren Eindruck von den Möglichkeiten und Grenzen von VBA haben; • in der Lage sein, eigene VBA-Makros zu schreiben und auszuführen; • eigene Benutzeroberflächen (UserForms) erstellen und programmieren können. Andreas Rozek HyMeSys Software & Consulting 6

7 VBA für Excel Kursmaterialien • Microsoft Excel: 60-Tage Testversion • Excel VBA Language Reference • Windows Script 5.6 Documentation • OpenOffice.org Version 3.x Andreas Rozek HyMeSys Software & Consulting 7

8 VBA für Excel Teil I: Grundlagen VBA für Excel 22.02.2010
Andreas Rozek HyMeSys Software & Consulting 8

9 Ein paar Worte zu Excel Grenzen
VBA für Excel Ein paar Worte zu Excel • Tabellen-artige Darstellung von Zahlen und Texten(!) • Verarbeitung der Tabelleninhalte mithilfe von Formeln • Visualisierung der Tabelleninhalte mithilfe von Diagrammen Grenzen • komplexe Berechnungen, Textverarbeitung • Zugriff auf Dateien, Datenbanken, das WWW (Data Mining) • „Steuerung des Benutzers“ durch Benutzeroberflächen Andreas Rozek HyMeSys Software & Consulting 9

10 Grenzen sprengen durch Makro-Programmierung
VBA für Excel Grenzen sprengen durch Makro-Programmierung Macros Macros Interpreter Interpreter DLLs, ActiveX Application Application System System • vorhandene Funktionalität durch (meist einfache) „Makros“ erweitern (sofern die Anwendung dies zuläßt) • durch Integration externer Komponenten (z.B. DLLs oder ActiveX Controls) zusätzliche Funktionalitäten möglich • das Gros der Funktionalitäten kommt weiterhin von der ursprgl. „Application“ (Wirtsprogramm) Andreas Rozek HyMeSys Software & Consulting 10

11 Was ist „VisualBasic for Applications (VBA)“?
VBA für Excel Was ist „VisualBasic for Applications (VBA)“? • VisualBasic „Classic“ > VBA > VBScript • VisualBasic • für Anwendungen, Steuerelemente, Bibliotheken • Übersetzung in Maschinensprache (bis Version 6) • VBScript • interpretierte Scriptsprache, z.B. für WSH, HTTP-Server, ... • keine echten Datentypen, ActiveX-Steuerung • VisualBasic for Applications • interpretierte „Automatisierungssprache“ in Wirtsprogramm • Zugriff auf Objektmodell des Wirtsprogrammes Andreas Rozek HyMeSys Software & Consulting 11

12 Wo und wie wird VBA (in Excel) eingesetzt?
VBA für Excel Wo und wie wird VBA (in Excel) eingesetzt? • exploratives Prototyping (Anforderungen erkennen) • experimentelles Prototyping (Lösungsmöglichkeiten suchen) • „Einmal“-Programme (Konvertierung von Datenbeständen, Analysen, Studien) • kleinere (häufig Firmen-interne) Projekte • kleinere Anwendungen Treibender Faktor ist stets: • Zeitersparnis (es ist fast schon alles vorhanden) Andreas Rozek HyMeSys Software & Consulting 12

13 Einmal lernen – mehrmals nutzen
VBA für Excel Einmal lernen – mehrmals nutzen • (Visual)Basic-Syntax ist stets gleich • die Objekt-Modelle ähneln sich, die Konzepte ohnehin • Ereignis-orientierte Programmierung ist omnipräsent VBA ist direkt einsetzbar in • Microsoft's Office-Anwendungen unter Windows • z.T. Microsoft's Office-Anwendungen unter MacOS X • manchen Anwendungen von Drittanbietern • OpenOffice 3.0 (evtl. auch unter MacOS X und Linux) Andreas Rozek HyMeSys Software & Consulting 13

14 Excel als VBA-Entwicklungsumgebung (im Vergleich zu Java)
VBA für Excel VBA für Excel Excel als VBA-Entwicklungsumgebung (im Vergleich zu Java) Andreas Rozek HyMeSys Software & Consulting 14

15 Excel als Entwicklungsumgebung
VBA für Excel Excel als Entwicklungsumgebung • Entwicklerwerkzeuge einblenden • Sicherheitseinstellungen anpassen • Makro-Rekorder (wird hier nicht behandelt) • Persönliche Makroarbeitsmappe c:\Dokumente und Einstellungen\benutzer\Anwendungsdaten\ Microsoft\Excel\XLSTART\Personal.xlsb Andreas Rozek HyMeSys Software & Consulting 15

16 Java-Übersetzungseinheiten
VBA für Excel Java-Übersetzungseinheiten • Klassen (eine Klasse pro Datei) • Pakete (packages, als Verzeichnis oder JAR-Archiv) • z.B. unter Eclipse: Projekte und zusätzliche Dateien VBA (in Excel, Projekt-Explorer) • „Projekte“ (Arbeitsmappen, persönliche Makroarbeitsmappe) • „Excel-Objekte“ (Tabellenblätter u.a.) *.cls • Formulare (UserForms) *.frm • Standardmodule *.bas • Klassenmodule *.cls Andreas Rozek HyMeSys Software & Consulting 16

17 Excel als Entwicklungsumgebung
VBA für Excel Excel als Entwicklungsumgebung • VBA-Editor • Eigenschaftenfenster • Direktbereich • Editor-Einstellungen • Kontext-sensitive Hilfe (F1), IntelliSense • Objektkatalog (F2) • Modul-Ebene, Prozedur-Ebene, Code-Ebene Andreas Rozek HyMeSys Software & Consulting 17

18 Excel als Entwicklungsumgebung (Fortsetzung)
VBA für Excel Excel als Entwicklungsumgebung (Fortsetzung) • Ausführen einer Prozedur (F5) • Haltepunkt setzen/löschen (F9) • Einzelschritt (F8), Prozedurschritt (Shift-F8) • Variablenwerte als Tool-Tip • Lokalfenster: Variablen-Sichtung und -Verwaltung • Überwachungsfenster: Überwachen von Ausdrücken • Debug.print expression Andreas Rozek HyMeSys Software & Consulting 18

19 VBA für Excel Syntax und Semantik VBA für Excel 22.02.2010
Andreas Rozek HyMeSys Software & Consulting 19

20 Grundlegendes zur Syntax
VBA für Excel Grundlegendes zur Syntax • eine Anweisung pro Zeile (Zeilenende = Anweisungsende) • : als Trenner zwischen zwei Anweisungen • _ als (Zeilen-)Fortsetzungszeichen • Groß-/Kleinschreibung ist nicht signifikant • Code-Editor paßt Schreibweise automatisch an • ' als Kommentarzeichen (für Zeilenkommentare) • Code-Editor (vgl. Eclipse) • beherrscht „IntelliSense“, „Syntax Colorization“ • gibt häufig bereits den Rahmen für eine Prozedur vor Andreas Rozek HyMeSys Software & Consulting 20

21 Namen („Bezeichner“) • 1...255 Zeichen
VBA für Excel Namen („Bezeichner“) • Zeichen • erstes Zeichen muß ein Buchstabe sein • danach sind Buchstaben, Ziffern und Unterstriche erlaubt • Schlüsselworte sind zu meiden • Groß-/Kleinschreibung wird nicht unterschieden • ISO ist zulässig (Unicode?) Andreas Rozek HyMeSys Software & Consulting 21

22 Datentypen • Boolean 2 Bytes true oder false • Byte 1 Byte 0...255
VBA für Excel Datentypen • Boolean 2 Bytes true oder false • Byte 1 Byte • Integer 2 Bytes • Long 4 Bytes • Single 4 Bytes ±3,402823e38...±1,401298e-45 • Double 8 Bytes ±1, e308... ±4, e-324 • Currency 8 Bytes , ,5807 Andreas Rozek HyMeSys Software & Consulting 22

23 Datentypen (Fortsetzung)
VBA für Excel Datentypen (Fortsetzung) • Decimal 14 Bytes (groß, Untertyp von Variant) • Date 8 Bytes • Object 4 Bytes Referenz auf ein Objekt • String 10+n Bytes variable Länge < Zeichen • String n Bytes feste Länge Zeichen • Variant 16 Bytes für Zahlen • Variant 22+n Bytes für Zeichenketten Andreas Rozek HyMeSys Software & Consulting 23

24 Datentypen-Suffixe • Integer % • Long & • Single ! • Double #
VBA für Excel Datentypen-Suffixe • Integer % • Long & • Single ! • Double # • String $ Suffixe sind nicht Bestandteil des Variablennamens Andreas Rozek HyMeSys Software & Consulting 24

25 Namenskonventionen • vor allem für Variablen und Konstanten
VBA für Excel Namenskonventionen • vor allem für Variablen und Konstanten • machen (Variablen-)Eigenschaften namentlich sichtbar • allgemeine Form [prefix]kind[name] • Präfixe • s = lokale, statische Variablen • m = Modul-spezifische Variablen und Konstanten • g = globale Variablen und Konstanten Andreas Rozek HyMeSys Software & Consulting 25

26 Namenskonventionen (Fortsetzung)
VBA für Excel Namenskonventionen (Fortsetzung) • Variablen-Arten für Excel-Blätter • wks Worksheet (Arbeitsblatt) sht • cht Chart (Diagramm) • frm Form (Dialog) • bas Basic (Standardmodul) mdl • cls Class (Klassenmodul) • xl4 Excel4 (Makroblatt) • im Falle einer Liste wird der Art ein „s“ angehängt Andreas Rozek HyMeSys Software & Consulting 26

27 Namenskonventionen (Fortsetzung)
VBA für Excel Namenskonventionen (Fortsetzung) • Variablen-Arten für die verschiedenen Datentypen • bln Boolean • sng Single • cur Currency • str String • dat Date • typ Type (Benutzerdefiniert) • dbl Double • var Variant • int Integer • lng Long • obj Object Andreas Rozek HyMeSys Software & Consulting 27

28 Namenskonventionen (Fortsetzung)
VBA für Excel Namenskonventionen (Fortsetzung) • Variablen-Arten für die verschiedenen Steuerelemente • lbl Label • mpg MultiPage • txt Textbox • spn SpinButton • cbo Combobox • scr Scrollbar • lst Listbox • img Image • chk Checkbox • ref RefEdit • opt OptionButton • trv TreeView • tgl ToggleButton • lsv ListView • cmd CommandButton • cal Calendar • tab TabStrip Andreas Rozek HyMeSys Software & Consulting 28

29 Deklaration von Variablen
VBA für Excel Deklaration von Variablen • implizit (durch Verwendung in einer Zuweisung) varValue = „implizit deklarierte Variable“ strValue$ = „implizit deklarierte String-Variable“ • explizit (irgendwo, aber vor der ersten Verwendung) dim varValue dim strValue as string dim|public|static name [as type] [, name [as type]] • Verbieten impliziter Deklarationen option explicit Andreas Rozek HyMeSys Software & Consulting 29

30 Deklaration von Datenfeldern (Arrays)
VBA für Excel Deklaration von Datenfeldern (Arrays) • stets explizit dim varArray() dim intArray(4) as Integer dim strArray(-3 to 3) as String dim|public|static name (n | n to m [,...])[as type][,...] • bis zu 60(!) Dimensionen möglich • Änderung des impliziten Start-Index option base 1 • Änderung der Feldgröße zur Laufzeit redim varArray(3) redim preserve intArray(15) Andreas Rozek HyMeSys Software & Consulting 30

31 Gültigkeitsbereich von Variablen und Konstanten
VBA für Excel Gültigkeitsbereich von Variablen und Konstanten • Deklaration auf Modulebene (public) • innerhalb des gesamten Modules sichtbar • Variablenwert bleibt erhalten • Deklaration auf Prozedurebene (dim) • nur innerhalb der Prozedur sichtbar • auf Modulebene deklarierte Variablen dürfen überdeckt werden • statische Variablen behalten ihren Wert Andreas Rozek HyMeSys Software & Consulting 31

32 Literale Konstanten • Zahlen 1234 1234e-56
VBA für Excel Literale • Zahlen e-56 • Zeichenketten „dies ist ein Text“ • Datum und Uhrzeit #21/07/2008 9:15:35# Konstanten const conValue = „Zeichenkette“ const conValue = 1234 const conValue = 1234e-56 const conValue = #21/07/2008 9:15:35# const conValue as String = „Zeichenkette“ const conValue as Integer = 1234 const name [as type] = value Andreas Rozek HyMeSys Software & Consulting 32

33 Arithmetische Operatoren
VBA für Excel Arithmetische Operatoren • Potenzierung ^ a ^ b • Grundrechenarten + - * / a + b • Ganzzahldivision \ a \ b • Modulo-Division mod a mod b • Negation a • Potenzierung negativer Zahlen nur für ganzzahlige Exponenten • Ganzzahldivision wandelt Argumente in Byte/Integer/Long • Modulo-Division liefert Divisionsrest Andreas Rozek HyMeSys Software & Consulting 33

34 Vergleichsoperatoren
VBA für Excel Vergleichsoperatoren • Vergleich < <= >= > a < b • Gleichheit = a = b • Ungleichheit <> a <> b • Referenzvergleich is a is b • Ähnlichkeit like a like pattern • Zeichenkettenvergleich vergleicht ASCII-Codes • like-Operator erlaubt Platzhalter (? *) im Vergleichsmuster Andreas Rozek HyMeSys Software & Consulting 34

35 Logische Operatoren ab: 00 10 01 11 • Konjunktion and a and b 0 0 0 1
VBA für Excel Logische Operatoren ab: • Konjunktion and a and b • Äquivalenz eqv a eqv b • Implikation imp a imp b • Negation not not a • Disjunktion or a or b • Antivalenz xor a xor b Andreas Rozek HyMeSys Software & Consulting 35

36 Verkettungsoperatoren
VBA für Excel Verkettungsoperatoren • Verkettung & a & b • Verkettung + a + b Operator-Hierarchie • ^ • - • * / • \ • mod • + - • & • = <> < > <= >= is like • not and or xor eqv imp Andreas Rozek HyMeSys Software & Consulting 36

37 Fallunterscheidungen
VBA für Excel Fallunterscheidungen • if ... then ... else if condition then [...] [else [...]] if condition then [elseif condition then ...] [else ...] end if • verschachtelbar Andreas Rozek HyMeSys Software & Consulting 37

38 Fallunterscheidungen (Fortsetzung)
VBA für Excel Fallunterscheidungen (Fortsetzung) • select case select case expression [case expression [,...] ] [case n to m [,...] ...] [case is < | <= | > | >= | = | <> expression [case else ...] end select • kein break erforderlich! Andreas Rozek HyMeSys Software & Consulting 38

39 VBA für Excel Schleifen • for ... next for counter = first to last [step delta] [exit for] next [counter] • Zählvariable außerhalb der Schleife deklarieren • Zählvariable innerhalb der Schleife nicht verändern! • Vorsicht mit Zählvariablen vom Typ single oder double Andreas Rozek HyMeSys Software & Consulting 39

40 Schleifen (Fortsetzung)
VBA für Excel Schleifen (Fortsetzung) • for each for each element in group [exit for] next [element] • „Gruppen“ können Arrays oder Collections sein • auch mehrdimensionale Arrays zulässig (niedrige Indices werden zuerst durchlaufen) Andreas Rozek HyMeSys Software & Consulting 40

41 Schleifen (Fortsetzung)
VBA für Excel Schleifen (Fortsetzung) • do do [while | until condition] [exit do] loop do [exit do] loop [while | until condition] • auch Endlosschleifen möglich Andreas Rozek HyMeSys Software & Consulting 41

42 Schleifen (Fortsetzung)
VBA für Excel Schleifen (Fortsetzung) • while while condition wend • bitte nicht mehr verwenden („deprecated“) • kein Verlassen der Schleife möglich Andreas Rozek HyMeSys Software & Consulting 42

43 Goto und Sprungmarken • goto goto line | label • Sprungmarken number
VBA für Excel Goto und Sprungmarken • goto goto line | label • Sprungmarken number label: • alphanumerische Sprungmarken: • erstes Zeichen muß ein Buchstabe sein • danach können Buchstaben oder Ziffern folgen • für on error goto von Bedeutung Andreas Rozek HyMeSys Software & Consulting 43

44 Prozeduren: Subroutinen und Funktionen
VBA für Excel Prozeduren: Subroutinen und Funktionen • Subroutinen [private | public][static] sub name [(params)] [exit sub] end sub • Parameterlisten [optional][byVal | byRef][ParamArray] name[()][as type][=def] im Normalfall [byVal | byRef] name[()][as type] static läßt alle inneren Variablen einen Prozedur-Aufruf überdauern Andreas Rozek HyMeSys Software & Consulting 44

45 Prozeduren (Fortsetzung)
VBA für Excel Prozeduren (Fortsetzung) • Funktionen [private | public ][static] function name [(params)][as type] [exit function] ... name = expression end function • Sichtbarkeit von Prozeduren • public von allen Modulen aller Projekte aus aufrufbar • private nur aus dem eigenen Modul aus aufrufbar (static hat nichts mit der Sichtbarkeit zu tun) Andreas Rozek HyMeSys Software & Consulting 45

46 Übergabe von Argumenten
VBA für Excel Aufruf von Prozeduren Subroutinen [call] name [(] [argument [, argument]] [)] Funktionen = name ([argument [, argument]]) Übergabe von Argumenten byValue für Variablen und Ausdrücke, Übergabe einer Kopie byRef nur für Variablen, Übergabe einer Referenz Andreas Rozek HyMeSys Software & Consulting 46

47 Konvertierungsfunktionen
VBA für Excel Konvertierungsfunktionen • CBool (expression) → Boolean • CByte (expression) → Byte • CCur (expression) → Currency • CDate (expression) → Date • CDbl (expression) → Double • CDec (expression) → Decimal • CInt (expression) → Integer • CLng (expression) → Long • CSng (expression) → Single • CVar (expression) → Variant • CStr (expression) → String Andreas Rozek HyMeSys Software & Consulting 47

48 Konvertierungsfunktionen (Fortsetzung)
VBA für Excel Konvertierungsfunktionen (Fortsetzung) • Val (string-expression) → Zahl • Str (number-expression) → String • Hex (number-expression) → Hexadezimal-Darstellung • Oct (number-expression) → Oktal-Darstellung • Asc (string-expression) → Zeichencode des ersten Zeichens • Chr (byte-expression) → Zeichen mit ggb. Zeichencode Andreas Rozek HyMeSys Software & Consulting 48

49 Datentypen (o.ä.) überprüfen oder anzeigen
VBA für Excel Datentypen (o.ä.) überprüfen oder anzeigen • IsArray (variable) ist Variable ein Feld? • IsDate (expression) ist Ausdruck vom Typ „Date“? • IsEmpty (expression) ist Ausdruck initialisiert? • IsError (expression) enthält Ausdruck ein Fehler-Objekt? • IsMissing (expression) ist optionales Argument vorhanden? • IsNull (expression) enthält Ausdruck nur Null-Werte? • IsNumeric (expression) ist Ausdruck numerisch? • IsObject (variable) enthält Variable eine Objekt-Referenz? • TypeName (expression) liefert den Datentyp des Ausdruckes Andreas Rozek HyMeSys Software & Consulting 49

50 Klassen Instanzieren ja, Vererbung nein
VBA für Excel Klassen Instanzieren ja, Vererbung nein Anlegen und Verwalten über den Code-Editor in eigenem Klassenmodul nur Instanzen-Methoden und -Eigenschaften static bedeutet: alle Prozedur-internen Variablen überdauern einen Aufruf (erspart viele einzelne "static"s) Selbst-Referenz me Andreas Rozek HyMeSys Software & Consulting 50

51 Eigenschaftsprozeduren
VBA für Excel Eigenschaftsprozeduren Auslesen einer Eigenschaft [public | private] [static] property get name [(params)] as type [exit property] [name = expression] end property Zuweisen eines Wertes an eine Eigenschaft [public | private] [static] property let name ([params,] value) [exit property] end property Zuweisen einer Referenz an eine Eigenschaft [public | private] [static] property set name ([params,] reference) [exit property] end property Andreas Rozek HyMeSys Software & Consulting 51

52 Konstruktor und Destruktor
VBA für Excel Konstruktor und Destruktor Konstruktor private sub Class_initialize () end sub Destruktor private sub Class_terminate () end sub Selbst-Referenz me Andreas Rozek HyMeSys Software & Consulting 52

53 Verwenden von Klassen und Objekten
VBA für Excel Verwenden von Klassen und Objekten Zuweisung von Referenzen dim name as Object set name = reference Instanzieren einer Klasse set name = new class Adressieren von Eigenschaften = instance.property instance.property = ... Andreas Rozek HyMeSys Software & Consulting 53

54 Verwenden von Klassen und Objekten
VBA für Excel Verwenden von Klassen und Objekten Null-Referenz set name = nothing if expression is nothing then ... with ... end with with instance end with Vorsicht bei Schachtelungen! Andreas Rozek HyMeSys Software & Consulting 54

55 Funktionen für die Ein- und Ausgabe
VBA für Excel Funktionen für die Ein- und Ausgabe Ausgabe im Direktbereich debug.print argument Meldungsfenster = MsgBox(prompt [, buttons] [, title]) Konstanten für „buttons“ und Rückgabewerte siehe Objektkatalog Eingabefenster = InputBox(prompt [,title] [, default]) gibt immer eine Zeichenkette zurück Andreas Rozek HyMeSys Software & Consulting 55

56 Mathematische Funktionen
VBA für Excel Mathematische Funktionen abs (expression) Betrag atn (expression) Arcustangens cos (expression) Cosinus exp (expression) Exponentialfunktion fix (expression) ganzzahliger Anteil (Rundung gegen 0) int (expression) ganzzahliger Anteil (Rundung gegen -infty) log (expression) natürlicher Logarithmus rnd ([seed]) Zufallszahl sng (expression) Vorzeichenfunktion -1,0,+1 sin (expression) Sinus sqr (expression) Quadratwurzel tan (expression) Tangens Andreas Rozek HyMeSys Software & Consulting 56

57 Zeichenketten-Funktionen
VBA für Excel Zeichenketten-Funktionen liegen z.T. in Byte- und Wort-Varianten vor (Unicode) Zeichenkettenlänge Entfernen von Weißzeichen = len (str) = trim (str) Zeichenkettenausschnitte = left(str,len) ... = mid(str,start,len) ... = right(str,len) Zeichenkettenumwandlungen = lcase (str) ... = ucase (str) Andreas Rozek HyMeSys Software & Consulting 57

58 Datum und Uhrzeit • aktuelles Datum/aktuelle Uhrzeit
VBA für Excel Datum und Uhrzeit • aktuelles Datum/aktuelle Uhrzeit Date() Time() Now() • Bestandteile eines Datums/einer Uhrzeit Day(date) Month(date) Year(date) Hour(time) Minute(time) Second(time) • konkretes Datum/konkrete Uhrzeit DateSerial(year, month, day) TimeSerial(hour, minute, second) • Wochentage und Monate Weekday(date [, firstdayofweek]) WeekdayName(date , abbreviated, firstdayofweek) MonthName(month [, abbreviated]) Andreas Rozek HyMeSys Software & Consulting 58

59 Übungen spielen sich heute im Code-Editor und im Direktbereich ab
VBA für Excel Übungen spielen sich heute im Code-Editor und im Direktbereich ab öffnen Sie Excel, nehmen Sie die Entwicklungseinstellungen vor und öffnen Sie den Code-Editor im Direktbereich: debug.print „Hello, World!“ debug.print sind zuviele Zeichen? schreiben Sie eine Sub- routine namens „say“, die einen Zeichenketten-Parameter erwartet und diesen mittels „debug.print“ ausgibt Andreas Rozek HyMeSys Software & Consulting 59

60 Übungen (Fortsetzung)
VBA für Excel Übungen (Fortsetzung) machen Sie den Parameter optional (Default ist „“) entfernen Sie den Default und prüfen Sie stattdessen in Ihrer Prozedur, ob ein Argument übergeben wurde – falls nicht, geben Sie „(null)“ aus ersetzen Sie den einzelnen Parameter durch ein „ParamArray“ und geben Sie alle Elemente dieses Feldes per debug.print aus jetzt geben Sie alle Elemente in einer Zeile aus als nächstes puffern Sie die übergebenen Texte zwischen und implementieren einen Zeilenumbruch nach 80 Zeichen Andreas Rozek HyMeSys Software & Consulting 60

61 Übungen (Fortsetzung)
VBA für Excel Übungen (Fortsetzung) legen Sie eine neue Klasse „Console“ an – diese wird gleich die Konsolenausgabe vereinfachen legen Sie eine private Klassen-Variable „Buffer“ an, die die je- weilige Ausgbezeile zwischenspeichert, initialisieren Sie mit „“ legen Sie eine statische Methode „print“ an, die wie zuvor „say“ zunächst alle Ausgaben zwischenspeichert und nach max Zeichen per debug.print ausgibt (nicht aber, wenn die Zeile noch nicht voll ist) legen Sie eine weitere Methode „println“ an, die sich wie „print“ verhält, aber am Ende den Puffer-Inhalt ausschreibt Andreas Rozek HyMeSys Software & Consulting 61

62 Übungen (Fortsetzung)
VBA für Excel Übungen (Fortsetzung) programmieren Sie einen elektronischen Würfel versuchen Sie, das Würfelergebnis „quasi-grafisch“ in den Direktbereich auszugeben programmieren Sie einen Lottozahlengenerator können Sie auch dessen Ausgabe „quasi-grafisch“ (wie auf einem Lottoschein) anzeigen? Andreas Rozek HyMeSys Software & Consulting 62

63 Übungen (Fortsetzung)
VBA für Excel Übungen (Fortsetzung) ermitteln Sie für ein gegebenes Datum die aktuelle Kalender- woche – tragen Sie diese Funktion als zusätzliche Funktion in Excel ein ermitteln Sie für einen ggb. Monat die Anzahl der Arbeitstage (zunächst noch ohne Feiertage) legen Sie ein Feld von Feiertagen an (für ein ggb. Jahr) und berücksichtigen Sie dieses bei der Ermittelung der Arbeitstage wie spät ist es? wie lange dauert es noch bis zum Ende dieses Kurses? Andreas Rozek HyMeSys Software & Consulting 63

64 Übungen (Fortsetzung)
VBA für Excel Übungen (Fortsetzung) geben Sie mittels MsgBox eine Nachricht aus – suchen Sie zuvor die Liste der Konstanten für die „buttons“ heraus welchen Button hat der Benutzer gedrückt? Zeigen Sie ihn an lassen Sie den Benutzer mittels InputBox einen Text eingeben und zeigen Sie diesen an – was passiert, wenn der Benutzer die Eingabe abbricht? Andreas Rozek HyMeSys Software & Consulting 64


Herunterladen ppt "VBA für Excel VBA für Excel"

Ähnliche Präsentationen


Google-Anzeigen