Programmieren in Anwendungen



Ähnliche Dokumente
Programmieren in Anwendungen

Programmieren in Anwendungen

Erweiterung der Aufgabe. Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen:

Programmieren mit Excel VBA Teil 2 Formulare als Benutzerschnittstellen

Bilderverwaltung mit Access

Modul 122 VBA Scribt.docx


Michaela Weiss 30. März Lerneinheit 3: VBA Teil 1: Eingabe/Ausgabe

Kleines Handbuch zur Fotogalerie der Pixel AG

Zur drittletzten Zeile scrollen

Visual Basic Basisbefehle Hinweis: Der Text in eckigen Klammern [ ] ist variabel, z.b. [var] => 5.3. Eckige Klammern sind stets wegzulassen!

5 DATEN Variablen. Variablen können beliebige Werte zugewiesen und im Gegensatz zu

Microsoft Access 2010 Bilder

Verteilte Datenbanken

Interoperabilität mit Office-Anwendungen (1)

VBA-Programmierung WS 2008/09

DeltaVision Computer Software Programmierung Internet Beratung Schulung

Access und die andern (Office) Programme. Armin Hess

Sin-Funktion vgl. Cos-Funktion

Neue Steuererklärung 2013 erstellen

Alternative Schutzmechanismen für Excel

Office Objektmodell (1)

Kurzeinführung Excel2App. Version 1.0.0

Access 2003 Programmierung mit Visual Basic

Access [basics] Aktionsabfragen per VBA ausführen. Beispieldatenbank. Aktionsabfragen. Die Execute-Methode. Datenzugriff per VBA

Web-Kürzel. Krishna Tateneni Yves Arrouye Deutsche Übersetzung: Stefan Winter

Excel Funktionen durch eigene Funktionen erweitern.

Programm GArtenlisten. Computerhinweise

WIE KANN ICH ACCESS XML FÄHIGKEITEN UNABHÄNGIG VON DER VERSION BEIBRINGEN?

Überschrift/Caption. Eigenschaftenfenster

Virtueller Seminarordner Anleitung für die Dozentinnen und Dozenten

Datenbank-Verschlüsselung mit DbDefence und Webanwendungen.

Anleitung für die Benutzung des Programms Grundwasserwärmepumpen (GWP-SF_09.05) Anleitung für MS Excel 2003 Getestet mit Excel 2003

GE Capital Equipment Financing. GE Capital Leasing-Tool Schulungsunterlagen

Innerhalb der Entwicklungsebene werden Makros in einem sog. zu einer Arbeitsmappe gehörenden Modul gespeichert.

Anleitung zur Erstellung eines PDF/A1b-konformen Dokuments aus einer PDF-Datei

In diesem Tutorial lernen Sie, wie Sie einen Termin erfassen und verschiedene Einstellungen zu einem Termin vornehmen können.

VERWALTUNG. Postfächer, Autoresponder, Weiterleitungen, Aliases. Bachstraße 47, 3580 Mödring

Text-Zahlen-Formatieren

xcall White Paper Wählen-Buttons in Excel

Ein Ausflug zu ACCESS

Sicherer Datenaustausch zwischen der MPC-Group und anderen Firmen. Möglichkeiten zum Datenaustausch... 2

Workshop 6: VBA-Programmierung mit MS Excel

Programmierkurs Java

Arbeiten mit dem Outlook Add-In

esms - sms senden & empfangen mit Outlook

Flexibler Einsatz von VBA-Code und Access-Elementen durch Kapselung und modularer Programmierung (Josef Pötzl,

12. ArcView-Anwendertreffen Workshop Programmierung in ArcGIS. Daniel Fuchs. Wo kann eigene Programmierung in ArcGIS verwendet werden?

Inhaltsverzeichnis Dokumentverwaltung Organisation von Dokumenten Ordner erstellen Dokumente im Dateisystem behandeln...

Bedienungsanleitung Anlassteilnehmer (Vereinslisten)

Eltako-FVS. Lizenzaktivierung ohne Internetverbindung

Bauteilattribute als Sachdaten anzeigen

'RZQORDGXQG,QVWDOODWLRQYRQ-HW5HSRUWVIU '\QDPLFV1$95RGHUIUKHU

Erstellen einer digitalen Signatur für Adobe-Formulare

Wichtige Information zur Verwendung von CS-TING Version 9 für Microsoft Word 2000 (und höher)

IAWWeb PDFManager. - Kurzanleitung -

Visual Basic Express Debugging

Excel-Anwendung Wartungsplan

Dialognetze. Ziel : Beschreibung von Methoden und Beschreibungstechniken für den Entwurf und die Dokumentation von Dialogabläufen

Frankieren in Microsoft Word mit dem E Porto Add in der Deutschen Post

Seriendruck mit der Codex-Software

1 FORMULARE. 1.1 Felder im Formular

Bedienungsanleitung Einsatzplanung. Bedienungsanleitung Einsatzplanung. Inhalt. Bedienung einer Plan-Tabelle

Arbeiten am Client. Achtung: Während der gesamten Vorbereitungsarbeiten darf das Programm MS Outlook auf keinen Fall geöffnet werden!

OutlookExAttachments AddIn

Monatstreff für Menschen ab 50 WORD 2007 / 2010

KURZANLEITUNG CLOUD OBJECT STORAGE

Erweiterung der CRM-Datenbank für den Umgang mit Excel-Mappen. Automatisches Ausfüllen von MS-Excel-Vorlagen mit Daten aus organice

Hinweis zu aktiven Inhalten von Dateien

Laden der beiden virtuellen Orgeln (36 bzw. 100 Register) unter Hauptwerk

ODBC-Treiber Programmübersicht

Um ein solches Dokument zu erzeugen, muss eine Serienbriefvorlage in Word erstellt werden, das auf die von BüroWARE erstellte Datei zugreift.

Tipps und Tricks zu Netop Vision und Vision Pro

Dateipfad bei Word einrichten

2. Word-Dokumente verwalten

Tutorial: Wie kann ich Dokumente verwalten?

Access [basics] Programmieren mit Arrays. Beispieldatenbank. Arrays. Eindimensionale Arrays. VBA-Grundlagen Programmieren mit Arrays

Anleitung zur Verwendung der VVW-Word-Vorlagen

ClubWebMan Veranstaltungskalender

.htaccess HOWTO. zum Schutz von Dateien und Verzeichnissen mittels Passwortabfrage

Aktivierung von Makros in den Erfassungshilfen

Hilfe zum Antragsformular

Dokumentation Exchange

Tutorial: Wie nutze ich den Mobile BusinessManager?

Hinweis. PKAntonitsch, 20. April 2002 (für kritische Rückmeldungen:

Anleitung für den Zugriff auf Mitgliederdateien der AG-KiM

Monatstreff für Menschen ab 50 Merkblatt 69 EXCEL Peter Aeberhard, Computeria Olten

Access Grundlagen für Anwender. Susanne Weber. 1. Ausgabe, 1. Aktualisierung, Juni 2013

10 Makros Makros aufzeichnen

Step by Step Softwareverteilung unter Novell. von Christian Bartl

Leitfaden zur Installation von Bitbyters.WinShutdown

Durchführung der Datenübernahme nach Reisekosten 2011

Anleitung zum Extranet-Portal des BBZ Solothurn-Grenchen

Installationsanleitung Spamfilter Outlook 2003

Modul Bildergalerie Informationen zum Bearbeiten des CMS-Systems für den SV Oberteisendorf

32.4 Anpassen von Menüs und Symbolleisten 795i

Datenaustausch mit dem BVK Data Room

-Versand an Galileo Kundenstamm. Galileo / Outlook

Anleitung EMU Unterrichtsdiagnostik Version zur digitalen Erfassung - von Jochen Koch

Erstellen eines Formulars

Transkript:

Programmieren in Anwendungen Annette Bieniusa Technische Universität Kaiserslautern bieniusa@cs.uni-kl.de 07.05.2015 1 / 29

Überblick Aufwärmübung Arbeit mit dem Dateisystem Ereignisorientierte Programmierung UserForm-Dialoge 2 / 29

Aufwärmübung 3 / 29

Aufwärmübung! Aufgabe Schreiben Sie eine Funktion, die das Maximum dreier Zahlen berechnet! 4 / 29

Variante 1 Function Max3 ( x as Integer, y as Integer, z as Integer ) as Integer If x >= y Then If x >= z Then Max3 = x Else Max3 = z Else If y >= z Then Max3 = y Else Max3 = z End If End Function 5 / 29

Variante 2 Function Max2 ( a as Integer, b as Integer ) as Integer If a >= b Then Max2 = a Else Max2 = b End Function Function Max3 ( x as Integer, y as Integer, z as Integer ) as Integer Max3 = Max2 (x, Max2 (y,z)) End Function 6 / 29

Variante 3: In Excel Function Max3 ( x as Integer, y as Integer, z as Integer ) as Integer Max3 = WorksheetFunction. Max (x, y, z) End Function Bitte testen Sie Ihre Implementierung mindestens mit folgenden Testfällen: Max3(1,2,3) Max3(2,3,1) Max3(3,1,2) Max3(1,1,1) 7 / 29

Arbeit mit dem Dateisystem 8 / 29

Arbeit mit dem Dateisystem Zugriff auf beliebige Dokumente und Dateien über das Dateisystem Abhängig vom Betriebssystem! Im Folgenden behandeln wir die Varianten für MS Windows Für MacOS und Office 2011: http://msdn.microsoft.com/ en-us/library/jj614412(v=office.14).aspx 9 / 29

Aufsuchen von Dateien Die Dir-Funktion liefern den Datei- oder Ordnernamen, der mit dem Pfadnamen und evtl. Attribut übereinstimmt. Platzhalter: * und? Wird keine passende Datei gefunden, wird der leere String zurückgegeben. Beim ersten Aufruf der Dir-Funktion müssen Sie einen Pfadnamen angeben. Um das nächste Element abzurufen, können Sie die Funktion danach ohne Parameter aufrufen. Dir [( Pfadname (, Attribut ))] As String Dir ("C:\ VBATestDateien \*. doc ") 10 / 29

Beispiel: Suche nach Dateien Sub DateiSuchenUndEinfuegen () Dim Dateiname As String Const Pfad As String = " C:\ MeineVBADateien \*. docm " Dateiname = Dir ( Pfad ) Do While Dateiname <> "" Selection. TypeText ( Dateiname & vbcrlf ) Dateiname = Dir Loop End Sub 11 / 29

Filterattribute von Dateien Konstante vbnormal vbreadonly vbhidden vbdirectory vbvolume Beschreibung ohne Attribute ohne Attribute + schreibgeschützt ohne Attribute + versteckt ohne Attribute + Verzeichnisse Datenträger 12 / 29

Weitere Operationen im Dateisystem Das FileSystem-Objekt stellt wichtige Methoden zur Verfügung. Bestimmen der Dateigrösse: FileSystem.FileLen(Pfadname) Kopieren einer Datei: FileSystem.FileCopy(Dateiname) Löschen einer Datei: FileSystem.Kill(Dateiname) Letzter Zeitpunkt von Änderungen: FileSystem.FileDateTime(Pfadname) Weitere Funktionen: http://msdn.microsoft.com/en-us/ library/microsoft.visualbasic.filesystem.aspx 13 / 29

Beispiel: Information zu einer Datei Sub DateiInfo () Dim Dateiname As String, InfoText As String Dateiname = " Brief. docx " FileSystem. ChDir ("C:\ MeineVBADateien ") InfoText = Round ( FileSystem. FileLen ( Dateiname ) / 1024,2) & " KB" InfoText = InfoText & vbcrlf & FileSystem. FileDateTime ( Dateiname ) MsgBox InfoText End Sub 14 / 29

Das FileDialog Objekt Dialogfenster zum Öffnen und Speichern von Dateien bzw. Auswahl von Dateien und Ordnern Arten: msofiledialogopen, msofiledialogsaveas msofiledialogpicker, msofiledialogfolderpicker Sub DateiAuswahl () Dim fd as FileDialog, Zaehler as Integer Set fd = Application. FileDialog ( msofiledialogfilepicker ) Filter als Standardeinstellung fd. Filters. Add "Word - Docs mit Makro ","*. docm ", 1 fd. AllowMultiSelect = True fd. Show For Zaehler = 1 To fd. SelectedItems. Count Application. Selection. TypeText ( fd. SelectedItems ( Zaehler ) & vbcrlf ) Next End Sub 15 / 29

Fehlerbehandlung Manchmal ist es hilfreich, die automatisch erzeugten Fehlermeldungen abzufangen und durch eigene Fehlermeldungen zu ersetzen. Sub DateiOeffnen () On Error Goto EigeneFehlermeldung Workbooks. Open ("C:\ Text. xlsx ") Weitere Anweisungen Exit Sub beende Ausfuehrung hier! EigeneFehlermeldung : Sprungmarke Call MsgBox (" Datei nicht gefunden!", vbcritical + vbokonly, " Fehler!") End Sub 16 / 29

Fehlerkodes On Error GoTo ErrorHandler Throw New DivideByZeroException () Fehler wird ausgeloest ErrorHandler : If ( TypeOf Err. GetException () Is DivideByZeroException ) Then Code zur Fehlerbehandlung hier End If Weitere Information über die Art des Fehlers: Err.Number Fehlerbeschreibung von VBA: Err.Description 17 / 29

Sprungmarken Auch mehrfache On Error- Anweisungen mit verschiedenen Sprungmarken möglich Sprungmarken müssen innerhalb der Prozedur definiert sein Public Sub VerschiedeneFehler () On Error GoTo Fehler1 Code On Error GoTo Fehler2 Code Exit Sub Fehler1 : MsgBox " Fehler im ersten Teil " Exit Sub Fehler2 : MsgBox " Fehler im zweiten Teil " End Sub 18 / 29

Ereignisorientierte Programmierung 19 / 29

Ereignisorientierte Programmierung Ereignisse treten z.b. beim Arbeiten mit Steuerelementen auf. Ereignisse können durch den Benutzer direkt (beispielsweise durch Anklicken von Buttons, Wechsel zwischen Dokumenten), aber auch durch das System selbst angestossen werden (z.b. Öffnen oder Speichern von Dokumenten). Ereignisprozeduren sind Makros, die als Reaktion auf bestimmte Ereignisse ausgeführt werden. Hebt bei Markieren einer Zelle die gesamte Zeile und Spalte hervor. Sub Worksheet_SelectionChange ( ByVal Target As Range ) Cells. Interior. ColorIndex = xlcolorindexnone ActiveCell. EntireRow. Interior. ColorIndex = 15 ActiveCell. EntireColumn. Interior. ColorIndex = 15 End Sub 20 / 29

Beispiel: Durchlauf von Arbeitsblättern Sub Workbook_Open () Application. OnKey Key :="{ PgUp }", Procedure :=" SheetsUp " Application. OnKey Key :="{ PgDn }", Procedure :=" SheetsDown " End Sub Sub SheetsUp () Dim i As Integer i = ActiveSheet. Index + 1 If i <= Sheets. Count Then Sheets ( i). Select End Sub Sub SheetsDown () Dim i As Integer i = ActiveSheet. Index - 1 If i >= 1 Then Sheets ( i). Select End Sub 21 / 29

Beispiel: Automatisierte Speicherabfrage Sub Workbook_Open () Application. OnTime EarliestTime := Now + TimeValue (" 00:10:00 "), Procedure :=" SaveWorkbook " End Sub Sub SaveWorkbook () If MsgBox (" Save workbook?", vbyesno ) = vbyes Then ActiveWorkbook. Save Application. OnTime EarliestTime := Now + TimeValue (" 00:10:00 "), Procedure :=" SaveWorkbook " End Sub 22 / 29

UserForm-Dialoge 23 / 29

Dialoge und Formulare Integrierte Dialoge für häufig verwendete Abfragen, z.b. Druckoder Speicherdialog Vordefinierte VBA-Dialoge für einfache Benutzerein- und ausgaben, z.b. InputBox und MsgBox Benutzerdefinierte Dialoge (UserForm-Dialoge) für komplexere Interaktion Dokumente als Formulare durch direktes Einbetten von Steuerelementen 24 / 29

Grundlagen zu UserForm-Dialogen Vielzahl von Steuerelementen, z.b. Listenfelder, Schaltflächen, Eingabefelder UserForm-Diloge werden durch Drag&Drop in der VBA-Entwicklungsansicht zusammengestellt. Flexible Reaktion auf Benutzereingaben durch Ereignisprozeduren, z.b. Hinzufügen von Werten Anzeigen eines Formulars frmname. Show Beim Aktivieren eines Formulars Sub frmname_activate ()... End Sub Ereignisprozeduren erstellen Sub frmname_ereignisname Sub SteuerelementName_Ereignisname Ressourcenfreigabe Unload frmname 25 / 29

Steuerelemente in UserForm-Dialogen Textfelder (Lables) lblname Werte zuweisen bzw. auslesen: frmname.lblname.value Ereignis bei Änderung: lblname_change Schaltflächen (CommandButton) cmdname Beschriftung: frmname.cmdname.caption Aktivierung / Deaktivierung: frmname.cmdname.enabled = True/False Ereignis bei Betätigen: frmname.cmdname_click 26 / 29

Steuerelemente in UserForm-Dialogen II Listenfeld (List) lstname Elemente hinzufügen: frmname.lstname.additem "Wert" Elemente entfernen: frmname.lstname.removeitem Indexwert Indes des ausgewählten Elements: frmname.lstname.listindex Text des ausgewählten Elements: frmname.lstname.name Ereignis bei Auswahl: lstname_change Kontrollfeld (Checkbox) chkname Auswahl prüfen, liefert True oder False: frmname.chkname.value Ereignis bei Anklicken: chkname_click und viele mehr! 27 / 29

Beispiel: Buchstaben zählen Bestimmen der Anzahl Private Sub cmdstart_click () Dim satz, buchstabe As String Dim zahl As Integer Einlesen der Eingabe satz = txteingabetext. Text buchstabe = txteingabebuchstabe. Text Test auf Vollstaendigkeit If satz = "" Then MsgBox "Sie haben keinen Satz eingegeben!", vbcritical, " Achtung!" Exit Sub ElseIf buchstabe = "" Then MsgBox "Sie haben keinen Buchstaben angegeben!", vbcritical, " Achtung!" Exit Sub End If Falls Gross - Kleinschreibung ignoriert werden soll, wird die Eingabe in Kleinschreibung umgewandelt If chkgrossklein. Value Then buchstabe = LCase ( buchstabe ) satz = LCase ( satz ) End If Bestimmen der Anzahl = upper bound eines Arrays zahl = UBound ( Split (satz, buchstabe )) Ausgabe des Ergebnisses lblausgabe. Caption = "Der Satz besitzt " & zahl & " mal den Buchstaben " & buchstabe cmdreset. Visible = True End Sub 28 / 29

Beispiel: Buchstaben zählen - Teil 2 Zuruecksetzen der Felder Private Sub cmdreset_click () lblausgabe. Caption = "" txteingabebuchstabe. Text = "" txteingabetext. Text = "" chkgrossklein. Value = False cmdreset. Visible = False End Sub 29 / 29