VBA für Excel VBA für Excel

Slides:



Advertisements
Ähnliche Präsentationen
Sortieren I - Bubblesort -
Advertisements

VBA für Excel VBA für Excel
Markus Tank, Wie arbeitet man mit dem Rich Text Editor?
Objektorientierung mit VBA
Dreamweaver Tatjana Funk. Gebrauchtwagenkauf DW ist ein visueller Editor DW ist ein WYSIWYG Editor (What you see is what you get.
Sortierverfahren Richard Göbel.
Suchmaschine vs. Katalog Such-Robots i.d.R. werden alle Seiten erfasst täglich werden mehrere Mio. Seiten besucht Redaktion relativ wenig Seiten erfasst.
Grundlagen im Bereich der Tabellenkalkulation
Technik Gestaltung Navigation Daten. Übersicht Client Webbrowser InternetServer.
Präsentationen: Multimedia Video Audio Objekte (OLE) Steuerelemente Startseite.
Teil I - Erstellen einer Excel-Tabelle zur Deckungsbeitragsrechnung
Excel Kurs Teil III Zinsberechnungen ( Sparbuch, Entnahmeplan, Monatszins ) Das große 1 x 1 ( Berechnungen mit Namen, die Matrixformel ), Blattregister,
Einführung in Visual C++
Die Steigung m In der allgemeinen Funktionsgleichung y=mx+b
Briefkopfbogen anpassen
OSZ-Handel--Forum.
FH-Hof HTML - Einführung Richard Göbel. FH-Hof Komponenten des World Wide Webs WWW Browser HyperText Transfer Protocol (HTTP) via Internet WWW Server.
Eine Bewerbung schreiben
Büromaterialbestellung
Delphi II - OOP IFB Fortbildung
Anlegen von Ordnern, speichern und Öffnen von Bildern und Briefen
6 Mit dem Internet Explorer im WWW arbeiten
University of Applied Sciences Übung Objektorientierte Programmierung II Dipl.-Inf. (FH) Markus Vogler.
Wie man eine einfache Präsentation erstellt...
Willkommen bei Sycarus – dem Mathematikprogramm, das neue Wege geht.
Auf Wunsch einer einzelnen Dame
Hi Zusammen! Ich möchte eine Graphik in PP erstellen, die wie ein Tacho funktioniert. Das heisst, das Tacho ist gegeben, aber der Pfeil soll sich durch.
Microsoft Outlook Express zur Einführung von Microsoft Outlook Express. Willkommen Erstellt von IT-Intern.
Steuerelemente im Excel
AINF-Lehrgang PROGRAMMIEREN Martina GREILER Wolfgang KATOLNIG
Dateien auf dem Desktop erstellen
Excel 97 Einführung - Start -.
SOFTWARE- UND WEB-LÖSUNGEN
Farben für ActiveX-Steuerelemente setzen
Effektives Arbeiten mit Formatvorlagen
Mit Favoriten (Lesezeichen) arbeiten
Anlegen von Ordnern, speichern und Öffnen von Bildern und Briefen
Ganzheitliches Projekt-, Ressourcen- und Qualitätsmanagement 1 Reports und AddOns Auf den folgenden Seiten wird Ihnen die Funktionsweise der Reports und.
Arbeiten mit der Anzahl Wörter in Ihrem Dokument j drücken Sie dann F5, oder klicken Sie auf Bildschirmpräsentation > Von Beginn an, um den Kurs zu starten.
Einführung. Steuerelemente Hier erstellt man das Fenster, mit dem der Anwender später arbeiten soll: Werte eingibt Buttons klickt Auswahlen trifft.
4. Weiterführende Textgestaltung
verstehen planen bearbeiten
Eigene UserForm-Werkzeugsammlungs-Elemente
Herbers Excel-Server - der Workshop
Pivot-Tabellenbereiche markieren
Blatt nur mit Werten kopieren
Animierte GIF-Grafik in einem Tabellenblatt anzeigen
Die Installation des Kalender-Steuerelements
Herbers Excel-Server - der Workshop Outlook- in UserForm
Erste Schritte in DELPHI
Der Windows-Desktop Beispiel für den Windows-Desktop.
Formulare in HTML.
Musterlösung zum Arbeitsblatt Nr. 1
Mehrfachausführungen Schleifen in VB 2010 ee. Programmidee: Der Anwender gibt eine Zahl ein, und das Programm gibt die Mehrfachen dieser Zahl aus (das.
VBA-Schulung /28Lesen und Schreiben von Daten 2 Erstellung von Formularen und Datenverarbeitung.
Bienert EDV Software für das 21. Jahrhundert Die Auftragserfassung ist Bestandteil des Grundmoduls im Firmenverwaltungspaket „Top.
Schaltfläche-Star 1 Schaltfläche Star. Schaltfläche-Star 2 Beispiel Star Erstellen eines grünen Rechtecks: Hintergrund auf Größe 200x50 Pixel minimieren,
Formulare in Dreamweaver Seite 1 Übung zu Web-Formularen Formular für Online Pizza Bestellung mit Dreamweaver erstellen.
UNSERER HOMEPAGE Anleitung zur Registrierung europa.eu Stand
Benutzeranleitung für den JBFOne-Master der Fiducia & GAD IT AG
Referat zu Hyperlink in Excel mit Grafik und Text
Funktionen, Felder und Parameter- übergabe. Funktionsaufruf mit Feld als Parameter: Parameter = Name des Feldes.
Excel-Tool: Beschwerdeanalyse  Folie 1 von Bitte Makros aktivieren Das Excel-Tool funktioniert nur mit eingeschalteten Makros. Eventuell erhalten.
J. Nürnberger2007 / 081 Tabellenkalkulation (3) Arbeiten mit Formeln am Beispiel von OpenOffice.org Calc.
11 3   Verwenden dieser Vorlage:
KGV-Einstiegshilfe.
Die Installation des Kalender-Steuerelements
<Fügen Sie den Titel des Problems ein>
 Präsentation transkript:

VBA für Excel VBA für Excel 25.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) 436 5784 Email: A.Rozek@gmx.de URL: www.Rozek.de Andreas Rozek HyMeSys Software & Consulting

Überblick über den Kurs VBA für Excel 25.02.2010 Ü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 (Email, Web, usw.) Verwendung externer Objekte, Sudoku Andreas Rozek HyMeSys Software & Consulting

Fragen zum gestrigen Tag? VBA für Excel 25.02.2010 VBA für Excel Fragen zum gestrigen Tag? Andreas Rozek HyMeSys Software & Consulting

Lernziele erreicht? Idealerweise sollten Sie seit dem gestrigen Tag VBA für Excel 25.02.2010 Lernziele erreicht? Idealerweise sollten Sie seit dem gestrigen Tag • wissen, was “Ereignis-gesteuerte Programmierung” ist; • den Unterschied zwischen Formular- und ActiveX- Steuerelementen kennen; • Formular- und ActiveX-Steuerelemente einsetzen und programmieren können. Andreas Rozek HyMeSys Software & Consulting

Lernziele des heutigen Tages VBA für Excel 25.02.2010 Lernziele des heutigen Tages Idealerweise sollten Sie am Ende des heutigen Tages • wissen, was ein “Eingabe-Formular” (UserForm) ist; • UserForms erstellen und benutzen können; • auch nicht-triviale Aufgaben wohldurchdacht lösen können; Andreas Rozek HyMeSys Software & Consulting

Teil IV: Eingabeformulare VBA für Excel 25.02.2010 VBA für Excel Teil IV: Eingabeformulare Andreas Rozek HyMeSys Software & Consulting

Eingabeformulare („UserForms“) VBA für Excel 25.02.2010 Eingabeformulare („UserForms“) sind eigentlich eigenständige (Eingabe-)Dialoge Andreas Rozek HyMeSys Software & Consulting

Eingabeformulare (Fortsetzung) VBA für Excel 25.02.2010 Eingabeformulare (Fortsetzung) können “modal” und “nicht-modal” angezeigt werden • modal Excel ist während der Eingabe blockiert • nicht-modal Benutzer kann Excel weiterhin bedienen im nicht-modalen Fall: Vorsicht z.B. mit “ActiveSheet”! können vom Code-Fenster aus getestet werden (F5) Andreas Rozek HyMeSys Software & Consulting

Erstellen eines Eingabeformulars VBA für Excel 25.02.2010 Erstellen eines Eingabeformulars im Code-Editor: • neues Formular anlegen • Eigenschaften anpassen wichtige Eigenschaften • Name • Caption • evtl. Scrollbars, KeepScrollbarsVisible • showModal, StartUpPosition Andreas Rozek HyMeSys Software & Consulting

Erstellen eines Eingabeformulars (Fortsetzung) VBA für Excel 25.02.2010 Erstellen eines Eingabeformulars (Fortsetzung) im Code-Editor auf dem Formular selbst: • Steuerelemente anlegen und konfigurieren wieder im Code-Editor: Ereignisbehandlungsroutinen schreiben • für die Vorbereitung des Formulares • evtl. für die Steuerelemente des Formulares selbst • für “Ok” • Formular auslesen, evtl. Fehler melden • ansonsten UserForm.hide • für “Cancel” • UserForm.hide evtl. Start-Makro schreiben und ... ausprobieren! Andreas Rozek HyMeSys Software & Consulting

UserForm-Steuerelemente (Überblick) VBA für Excel 25.02.2010 UserForm-Steuerelemente (Überblick) Bezeichnungen (Label) Schaltflächen (CommandButton) Umschaltflächen (ToggleButton) Drehfelder (SpinButton) Kontrollkästchen (Checkbox) Optionsfelder (Radiobutton) Rahmen (Frame) Listenfelder (Listbox) Kombinationsfelder (Combobox) Rollbalken (Scrollbar) Tabulatorstreifen (TabStrip) TabulatorFelder (MultiPage) Andreas Rozek HyMeSys Software & Consulting

UserForm-Steuerelemente (allg. Arbeitsschritte) VBA für Excel 25.02.2010 UserForm-Steuerelemente (allg. Arbeitsschritte) Anlegen eines Steuerelementes • aus der Toolbox in das Formular ziehen (praktisch!) oder • in der Toolbox anwählen und auf dem Formular mit der Maus einen Umriß zeichen Bearbeiten eines Steuerelementes • mit linker Maustaste selektieren und im Eigenschaftenfenster Anpassungen vornehmen • mit linker Maustaste doppelt anklicken und im Code-Editor die Ereignisroutine schreiben Andreas Rozek HyMeSys Software & Consulting

VBA für Excel 25.02.2010 Achtung! manche Steuerelemente besitzen andere Eigenschaften, wenn Sie in einem Eingabeformular verwendet werden: • Kombinationsfelder: RowSource • Listenfelder: RowSource manche Steuerelemente sind nur in Eingabeformularen verfügbar: • Rahmen (Frame) • Tabulatorstreifen (TabStrip) • TabulatorFelder (MultiPage) Andreas Rozek HyMeSys Software & Consulting

UserForm-Steuerelemente: Rahmen VBA für Excel 25.02.2010 UserForm-Steuerelemente: Rahmen dienen der (echten) Gruppierung von Steuerelementen wichtige Eigenschaften • Name • Caption • evtl. Scrollbars, KeepScrollbarsVisible Andreas Rozek HyMeSys Software & Consulting

UserForm-Steuerelemente: Rahmen VBA für Excel 25.02.2010 UserForm-Steuerelemente: Rahmen um z.B. Optionsfelder zu gruppieren: • Rahmen anlegen • Optionsfelder innerhalb des Rahmens anlegen oder • Optionsfelder anlegen • Rahmen anlegen • Optionsfelder in den Rahmen schieben Elemente im Rahmen werden mit dem Rahmen verschoben! Andreas Rozek HyMeSys Software & Consulting

UserForm-Steuerelemente: MultiPages VBA für Excel 25.02.2010 UserForm-Steuerelemente: MultiPages dienen der seitenweise Anzeige von Steuerelementen jede Seite kann im Entwurfs- formular einzeln angewählt werden! Konfiguriert werden die einzelnen Seiten! Andreas Rozek HyMeSys Software & Consulting

UserForm-Steuerelemente: MultiPages VBA für Excel 25.02.2010 UserForm-Steuerelemente: MultiPages wichtige Eigenschaften: • Name • Caption • evtl. Scrollbars, KeepScrollbarsVisible Elemente auf den einzelnen Seiten bleiben selektierbar – es werden aber immer nur die gerade sichtba- ren Elemente gezeigt! Andreas Rozek HyMeSys Software & Consulting

“Lebenszyklus“ eines Eingabeformulares VBA für Excel 25.02.2010 “Lebenszyklus“ eines Eingabeformulares (Erstellen) Laden Load UserForm Initialisieren private sub UserForm_Initialize() Vorbereiten und Einblenden (und Benutzen) UserForm.Show [vbModeless] Auslesen und Ausblenden UserForm.Hide Aufräumen und private sub UserForm_Terminate() Entladen Unload UserForm Andreas Rozek HyMeSys Software & Consulting

Ein konkretes Beispiel... VBA für Excel 25.02.2010 Ein konkretes Beispiel... Andreas Rozek HyMeSys Software & Consulting

Ein konkretes Beispiel: Erstellen VBA für Excel 25.02.2010 Ein konkretes Beispiel: Erstellen Andreas Rozek HyMeSys Software & Consulting

Ein konkretes Beispiel: Vorbereiten und Einblenden VBA für Excel 25.02.2010 Ein konkretes Beispiel: Vorbereiten und Einblenden Sub showDialog() Load BeispielFormular With BeispielFormular .SalutationChoice.Value = ... ... End With BeispielFormular.Show End Sub Andreas Rozek HyMeSys Software & Consulting

Ein konkretes Beispiel: Auslesen und Ausblenden VBA für Excel 25.02.2010 Ein konkretes Beispiel: Auslesen und Ausblenden Private Sub OkButton_Click() ... (Eingaben überprüfen, Beispiel folgt) If (Trim(SalutationChoice.Value) = "") Then MsgBox "Bitte wählen Sie eine Anrede" Exit Sub End If ... (Eingaben auslesen und in Tabelle schreiben) BeispielFormular.Hide End Sub Andreas Rozek HyMeSys Software & Consulting

Teil IV: Programmiertips VBA für Excel 25.02.2010 VBA für Excel Teil IV: Programmiertips Andreas Rozek HyMeSys Software & Consulting

Das Wasserfallmodell Pflichtenheft Analyse MockUp Entwurf Prototyp VBA für Excel 25.02.2010 Das Wasserfallmodell Pflichtenheft Analyse MockUp Entwurf Prototyp Implementierung Test Einsatz Andreas Rozek HyMeSys Software & Consulting

VBA für Excel 25.02.2010 Programmiertips dies ist keine Vorlesung über • Entwurfstheorie • Systemmodellierung • Algorithmenentwurf stattdessen erhalten Sie ein paar ganz pragmatische Tips zur Programmierung – bitte nicht Ihrem Professor zeigen! Andreas Rozek HyMeSys Software & Consulting

Konkretes Beispiel: Zahlenmemory VBA für Excel 25.02.2010 Konkretes Beispiel: Zahlenmemory Andreas Rozek HyMeSys Software & Consulting

Ereignis-orientierte Programmierung VBA für Excel 25.02.2010 Ereignis-orientierte Programmierung Ereignisse lösen i.a. “Zustandsänderungen” aus (Zustand, Zustandsübergang) formal korrekte Modellierung und Darstellung z.B. durch • Zustandsdiagramm • Petri-Netz in der Praxis “privat”: zeichnen Sie einfach irgendwie ein Zustandsdiagramm - aber zeichnen Sie es! Andreas Rozek HyMeSys Software & Consulting

„Irgendein“ Zustandsdiagramm VBA für Excel 25.02.2010 „Irgendein“ Zustandsdiagramm Start :Reset Spiel initialisiert 1. Karte aufgedeckt weitere Felder verdeckt: 2. Karte aufgedeckt ungleich:zudecken gleich: alle Felder aufgedeckt: Ende Andreas Rozek HyMeSys Software & Consulting

VBA für Excel 25.02.2010 Programmablauf formal korrekte Modellierung und Darstellung z.B. durch • Flußdiagramm o.ä. • (PseudoCode) in der Praxis “privat”: zeichnen Sie einfach irgendein Flußdiagramm ohne gra- fischen Schnickschnack - aber zeichnen Sie es! Andreas Rozek HyMeSys Software & Consulting

„Irgendein“ Flußdiagramm VBA für Excel 25.02.2010 „Irgendein“ Flußdiagramm Memory-Feld füllen „Liste“ (String) aller Feldinhalte erstellen (je zweimal „0“ bis „9“) for Row = 1 to 4 for Column = 1 to 5 Inhalt Nr. rnd(1...len(„Liste“)) in Feld (r-1)*5+c eintragen Inhalt aus Liste entfernen Ende Andreas Rozek HyMeSys Software & Consulting

ZEIT! Weitere Tips aus der Praxis VBA für Excel 25.02.2010 Weitere Tips aus der Praxis “Machen Sie es so einfach wie möglich - aber nicht einfacher” KISS-Prinzip: “Keep It Simple - but not Stupid!” “die Produktivität von Programmierern variiert um den Faktor 20” (und je länger es dauert, desto unwahrscheinlicher wird es, daß das Projekt abgeschlossen wird) ZEIT! Andreas Rozek HyMeSys Software & Consulting

Weitere Tips aus der Praxis (Fortsetzung) VBA für Excel 25.02.2010 Weitere Tips aus der Praxis (Fortsetzung) „Pareto-Prinzip“: „mit 20% des Aufwandes erreicht man 80% des Ergebnisses“ keine unumstößliche Regel, wohl aber eine Beobachtung niemals darauf verlassen, aber im Hinterkopf behalten: => MockUps und Prototypen „Der frühe Wurm fängt den Fisch!“ Andreas Rozek HyMeSys Software & Consulting

Weitere Tips aus der Praxis (Fortsetzung) VBA für Excel 25.02.2010 Weitere Tips aus der Praxis (Fortsetzung) seien Sie pragmatisch – nicht perfektionistisch: • Sie können 1000-mal behaupten, daß Ihre Lösung verbesse- rungswürdig ist – wenn Sie denn eine haben • aber Sie dürfen kein einziges Mal behaupten, daß Sie die beste aller Lösungen liefern werden, wenn sie noch nicht vorzeigbar ist (setzen Sie Ihre eigenen Ziele nicht zu hoch) => Vorabversionen – keine “Vaporware” (Duke Nukem) Andreas Rozek HyMeSys Software & Consulting

Weitere Tips aus der Praxis (Fortsetzung) VBA für Excel 25.02.2010 Weitere Tips aus der Praxis (Fortsetzung) planen Sie! Aber nicht sich zu Tode! planen Sie gerade soweit, daß Sie denken, Sie können Ihre Lösung implementieren – es werden ohnehin unvorhergese- hene Probleme auftreten! haben Sie keine Angst vor Kritik – es wird immer jemanden geben, dem Ihre Lösung nicht gefällt! keine Angst vor O(n2) bzw. O(n3) bei kleinen n Andreas Rozek HyMeSys Software & Consulting

VBA für Excel Übungen VBA für Excel 25.02.2010 Andreas Rozek HyMeSys Software & Consulting

VBA für Excel 25.02.2010 Übungen implementieren Sie das Beispielformular • erstellen Sie zunächst die Tabelle mit den Vorgaben für die Listen sowie den Zellen für die Benutzereingaben • legen Sie nun das Formular mit allen Steuerelementen an • den Inhalt für Datenschutzerklärung und AGBs lassen Sie sich von einem “Lorem Ipsum”-Generator erzeugen (dazu recher- chieren Sie im Web!) • erstellen Sie die Ereignisroutine für den “Cancel”-Button Andreas Rozek HyMeSys Software & Consulting

Übungen (Fortsetzung) VBA für Excel 25.02.2010 Übungen (Fortsetzung) erstellen Sie die Ereignisroutine für den “Ok”-Button • prüfen Sie zunächst die Vollständigkeit aller Eingaben im Fehlerfalle zeigen Sie eine MsgBox an und verlassen Sie die Ereignisroutine, ohne die Tabelle modifiziert zu haben • lesen Sie nun die verschiedenen Eingabefelder aus und schreiben Sie passende Werte in die Tabelle Achtung: fassen Sie alle selektierten Interessen in einer Zeichenkette zusammen (Komma-separiert) • am Ende blenden Sie den Dialog einfach wieder aus testen Sie Ihr Formular aus dem Code-Editor heraus! Andreas Rozek HyMeSys Software & Consulting

Übungen (Fortsetzung) VBA für Excel 25.02.2010 Übungen (Fortsetzung) erstellen Sie nun die Ereignisroutine für den “Eingabe”-Button auf dem Tabellenblatt • “laden” Sie zunächst das Eingabeformular • füllen Sie nun das Formular mit den Vorgaben aus der Tabelle Achtung: die Tabellenzellen müssen dazu bereits gültige Werte enthalten (dürfen insbesondere nicht “leer” sein - “leer” nicht mit der leeren Zeichenkette verwechseln!). Verwenden Sie die Funktion split, um den Inhalt der Zelle mit den Adressen in ein Datenfeld umzuwandeln... Andreas Rozek HyMeSys Software & Consulting

Übungen (Fortsetzung) VBA für Excel 25.02.2010 Übungen (Fortsetzung) Fortsetzung zum Vorbelegen des Listenfeldes durchlaufen Sie alle Elemen- te des Listenfeldes und setzen ListBox.selected(i) = true für jedes i-te Element, dessen Text im Tabellenfeld vorhanden ist • testen Sie das Beispiel in seiner vollen Form Andreas Rozek HyMeSys Software & Consulting

Übungen (Fortsetzung) VBA für Excel 25.02.2010 Übungen (Fortsetzung) entwerfen und implementieren Sie ein “Zahlenmemory” • skizzieren Sie die Anforderungen an das Spiel (Anzeige des Spielfeldes, Bedienung (Aufdecken von Feldern) Erkennung des Spielzuges, Erkennung des Spielendes) • überlegen Sie sich eine Implementierung in Excel und VBA (so einfach wie möglich) Andreas Rozek HyMeSys Software & Consulting

Übungen (Fortsetzung) VBA für Excel 25.02.2010 Übungen (Fortsetzung) implementieren Sie das Spiel Schritt für Schritt • erstellen Sie das Tabellenfeld mit allen Bedien- und Anzeige- komponenten => MockUp! • implementieren Sie die Bedienung und die Ende-Erkennung • testen Sie Ihr Spiel – im Zweifelsfalle “mogeln” Sie, indem Sie sich die aufgedeckten Karten notieren • testen Sie auch auf Fehlbedienungen: was passiert, wenn aufgedeckte Karten erneut aufgedeckt werden? Wenn jemand versucht, im selben Zug zweimal dieselbe Karte aufzudecken? Andreas Rozek HyMeSys Software & Consulting