Programmieren in Anwendungen



Ähnliche Dokumente
Programmieren in Anwendungen

Programmieren in Anwendungen

Programmieren in Anwendungen

Programmieren in Anwendungen

Access 2010 Programmierung Import und Export nach Excel

Excel + VBA. Ergänzungen. Kapitel 1 Einführung in VBA CustomViews in VBA nutzen HARALD NAHRSTEDT. Erstellt am

ACCESS. Access-Daten nach Excel verknüpfen INTERAKTIV ACCESS-DATEN NACH EXCEL VERKNÜPFEN BASICS

Excel VBA. Teil Zusammenfassung! Was wir können sollten! V

Beck EDV-Berater VBA. Visual Basic for Applications Programmieren unter Office XP. 2., neu bearbeitete Auflage

ACCESS. Formulare per VBA referenzieren FORMULARE MIT VBA PROGRAMMIEREN FORMULARE PER VBA REFERENZIEREN BASICS

Access und die andern (Office) Programme. Armin Hess

OLConnector Programmierung

Excel + VBA. Ergänzungen. Kapitel 1 Einführung in VBA Objektbindungen und Verweise HARALD NAHRSTEDT. Erstellt am

Workshop 6: VBA-Programmierung mit MS Excel

Microsoft Excel VBA - Einführung

Vorwort...10 Einleitung...12 Lernen Üben Anwenden...12 Inhalt und Aufbau des Buches...13 Inhalt...13 Aufbau Access 2007 (fast) alles ist

Excel + VBA. Ergänzungen. Kapitel 1 Einführung in VBA Balloons in VBA nutzen HARALD NAHRSTEDT. Erstellt am

Office Objektmodell (1)

zu große Programme (Bildschirmseite!) zerlegen in (weitgehend) unabhängige Einheiten: Unterprogramme

4. Kooperation mit Word, etc. (OLE)

Excel + VBA. Ergänzungen. Kapitel 1 Einführung in VBA Kommentare mit VBA verwalten HARALD NAHRSTEDT. Erstellt am

zu große Programme (Bildschirmseite!) zerlegen in (weitgehend) unabhängige Einheiten: Unterprogramme

Objekte. Excel Makros und VBA, Seite 2

Modul 122 VBA Scribt.docx

VBA (Visual Basic for Application) Zugriff auf Excel

Access 2000 Programmierung

Ihr Training VBA Programmierung mit Excel Training-Nr.: 5205 Voraussetzungen

VBA (Visual Basic for Application) Austausch von Daten

Programmieren mit Excel VBA Teil 2 Formulare als Benutzerschnittstellen

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:

Generierung von Zufallszahlen gemäß einer vorgegebenen diskreten Verteilung

Excel + VBA. Ergänzungen. Kapitel 1 Einführung in VBA OLE-Objekte HARALD NAHRSTEDT. Erstellt am

Workshop 4: VBA-Programmierung mit MS Excel

INFORMATIK TEIL: VBA. Infromatik WS 17/18 Teil: VBA. Allgemeines: - 4 Übungen á 3 Stunden

Interoperabilität mit Office-Anwendungen (1)

EURO-Umrechnung in Excel 2010

Access-Benutzeroberfläche

Objekt und Auflistung. Objekt. Auflistung und Objekt. Worksheet "Tabelle1" Beispiele: Application Range. Name, Visible = True,

15.4 Mit dem Printer -Objekt drucken

Verteilte Datenbanken

Formulare für die Dateneingabe Mehrere Formularinstanzen anzeigen

Excel-Optionen über Steuerelemente setzen

White Paper Wählen-Buttons in Excel

Unpaarige Anfü hrüngszeichen ünd Klammern interaktiv korrigieren

Workshop 7: VBA-Programmierung mit MS Excel

Einstieg in VBA mit Excel Galileo Press

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

Programmierung von MS-Office mit Visual Basic

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

Microsoft Access 2010 Bilder

Informationsverarbeitung im Bauwesen

Microsoft VBA-Programmierung VBA2007. Autorin: Andrea Weikert. Überarbeitete Ausgabe vom 3. September 2008

MiniPPS - Systembeschreibung

Kapitel 3 Datentypen, Variablen und Konstanten

Access 2003 Programmierung mit Visual Basic

Michael Kolberg. einfach klipp & klar. Microsofft* Press

Excel Formularen mit SAS Daten

11.1 Warum überhaupt VBA?

Bilderverwaltung mit Access

Zusammenfassung Was haben wir bisher gelernt?

Gedanken zur Unterrichtsrelevanz von Software-Werkzeugen am Beispiel von Excel (VBA)

Klassen. 3.1 Was Sie in diesem Kapitel erwartet. 3.2 Allgemeines

Excel 2016 Makro Workshop. Inhalt

1 Datenübernahme ohne VBA Grundlagen der VBA Programmierung Inhalt

Excel + VBA. Ergänzungen. Kapitel 1 Einführung in VBA Namen in VBA nutzen HARALD NAHRSTEDT. Erstellt am

Arrays. Arrays werden verwendet, wenn viele Variablen benötigt werden. Der Vorteil in Arrays liegt darin, dass man nur eine Variable deklarieren muss

Einführung in die Programmierung mit VBA

VBA Programmierung Einführung

Integration des VBA-Codes in Excel-Tabellen, Zugriff auf Datenbanken. Bernd Blümel

Excel VBA Referenz. Für die Versionen 2002 bis Daniel Hofer Version 3.1 / Seite 1 von 57

I Inhaltsverzeichnis B Beispielverzeichnis Vorwort... 17

BERND HELD. Das Access-VBA Codebook

Rund um Charts und Diagramme

Exit Do (Anweisung) Exit For (Anweisung) Exit Function (Anweisung) Exit Sub (Anweisung)

Inhalt. Dokument Beschreibung. Bentley Technical Support ProStructures.Net - Zusatzprogrammierung Visual Basic Express PST_Bearbeitung_Dialog

Makro Programmierung User Interface (Entwicklungs- Umgebung) Grafische Werkzeugbox. GUI Form erstellen (UserForm)

Kapitel 3 Sprachelemente von Excel-VBA

13 Unterprogramme erstellen

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

Visual Basic. Einführung

VBA mit Office 97 lernen

1 Einführung Grundlagen von Objekten und Ereignissen Grundlagen der Programmierung mit VBA Fehlerbehandlung...

Klausur WS 2013/14 EDV 2 Anwendungen im Bauwesen. Name: Vorname: Matr.-Nr:

MELANIE BREDEN MICHAEL SCHWIMMER. Das Excel-VBA Codebook

1 Einführung Grundlagen von Objekten und Ereignissen Grundlagen der Programmierung mit VBA Fehlerbehandlung 137

Informationsverarbeitung im Bauwesen

CADSTAR MRP-Link. MRP-Link ist erstellt von:

Inhaltsverzeichnis VII

Hier den Kundennamen auswählen:

Neben dem Symbol Entwurfsmodus ist das Symbol Befehlschaltfläche zu sehen.

Excel VBA Fehler im Programm

Access 2010 Programmierung Formulare, Berichte und Steuerelemente

Transkript:

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

Überblick Ereignisorientierte Programmierung UserForm-Dialoge Integrierte Office-Automatisierung Sicherheitsaspekte 2 / 20

Ereignisorientierte Programmierung 3 / 20

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 4 / 20

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

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

UserForm-Dialoge 7 / 20

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 8 / 20

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 UserFormName. Show Beim Aktivieren eines Formulars Sub UserFormName_Activate ()... Ereignisprozeduren erstellen Sub UserFormName_Ereignisname Sub SteuerelementName_Ereignisname Ressourcenfreigabe Unload UserFormName 9 / 20

Integrierte Office-Automatisierung 10 / 20

Kommunikation zwischen Office-Anwendungen Austausch von Daten kann auf verschiedenen Wegen erfolgen Zwischenablage (bei bestimmten VBA-Objekten durch die Prozeduren Copy und Paste) COM-Automation (Component Object Model) (Interprozesskommunikation unter Windows) DAO/ADO (Data Access Objects/ActiveX Data Objects) (VBA-angepasste Objektmodelle zum Datenaustausch unter COM) Integration von Funktionalitä durch COM möglich 11 / 20

Allgemeine Schritte 1. Erstellen eines Verweises auf die Objektbibliothek der Office-Anwendung, die integriert werden soll (VBA-Entwicklungsumgebung, Extras Verweise...) 2. Erzeugung des zu integrierenden Objekts 3. Programmierung der erwünschten Funktionalität 4. Freigabe des integrierten Objekts 12 / 20

Erzeugung des zu integrierenden Objekts 1. Deklaration der Objektvariablen Dim appx As Objekttyp fruehes Binden Dim appword As Word. Application Dim appexcel as Excel. Application Dim sheetexcel as Excel. Sheet Dim appx As Object spaetes Binden 2. Objektinstanzen erzeugen Die CreateObject-Funktion startet die zugrunde liegende Anweisung und liefert einen Objektverweis auf eine neue Objektinstanz zurück. Mit dem Schüsselwort New wird die zugrunde liegende Anweisung gestartet und wird eine neue Objektinstanz erzeugt (nur bei frühem Binden). Die GetObject-Funktion liefert einen Objektverweis auf eine bereits gestartete Anwendung (häufig schneller). 13 / 20

Beispiele: Objekterzeugung mit Fehlerbehandlung Verwendung von CreateObjekt On Error Resume Next Set AppWord = CreateObject (" Word. Application ") If Err = 429 Then MsgBox " Anwendung Word nicht installiert " End If Verwendung von GetObject On Error Resume Next Set AppWord = GetObject (," Word. Application ") If Err = 429 Then MsgBox " Anwendung Word noch nicht gestartet " End If Optionale Pfadangaben bei GetObject Set appexcel = GetObject (," Excel. Application ") Set appexcel = GetObject (""," Excel. Application ") startet Anwendung wie bei CreateObject Set worksheetexcel = GetObject (" C:\ Daten \ Statistic. xlsx ") 14 / 20

Objekte freigeben Objekte schliessen bzw. beenden, danach stehen sie nicht mehr zur Verfügung ObjektVariable. Close ObjektVariable. Quit Arbeitsspeicher freigeben Set ObjektVariable = Nothing Nicht freigegebener Arbeitsspeicher kann zu Programmabstürzen durch Speichermangel führen. 15 / 20

Beispiel: Daten aus Excel auslesen und in Word einfügen Sub DatenAusExcel () On Error GoTo FehlerSub Dim app As Excel. Application Set app = GetObject (," Excel. Application ") app. Workbooks. Open (" Mappe. xlsx ") If app. Visible = False Then app. Visible = True End If ActiveDocument. Bookmarks (" WERT "). Select Selection. InsertAfter app. ActiveSheet. Range ("A1") app. Quit Set app = Nothing Exit Sub FehlerSub : If Err = 429 Then Set app = CreateObject (" Excel. Application ") Else Err. Raise Err. Number End If Resume Next 16 / 20

Beispiel: Einfügen einer Briefanrede Dim appxl As Excel. Application Private Sub UserForm_Activate () Dim Zaehler As Integer Set appxl = CreateObject (" Excel. Application ") appxl. Workbooks. Open " Namen. xlsx " appxl. Sheets (" Mitarbeiter "). Activate For Zaehler =1 To appxl. Range ("A2"). CurrentRegion. Rows. Count Me. lstname. AddItem appxl. Cells ( Zaehler, 2) Next Me. lblanzahl. Caption = Me. lstnamen. ListCount & " Namen geladen " Private Sub cmdabbrechen_click () appxl. Quit Set appxl = Nothing Unload frmbriefanrede 17 / 20

Beispiel: Einfügen einer Briefanrede - Teil 2 Private Sub lstnamen_change () Dim Zeile As Integer Dim Anrede As String Zeile = Me. lstnamen. ListIndex + 1 If appxl. Cells ( Zeile, 3) = 1 Then Else Anrede = " Liebe Frau " & appxl. Cells ( Zeile, 1) End If Me. txtbriefanrede = Anrede Private Sub cmdeinfuegen_click () Selection. TypeText Me. txtbriefanrede cmdabbrechen_click 18 / 20

Sicherheitsaspekte 19 / 20

Sicherheitseinstellungen für Makros Ab Office 356: Authentifizierung von vertrauenswürdigen Quellen/Programmierern Standardmässig werden dann nur Makros ausgeführt, die aus vertrauenswürdigen Quellen stammen (Überprüfung durch digitale Signaturen). Die Freigabe beliebiger Makros ist nicht empfehlenswert, da hierbei grosse Sicherheitslücken geschaffen werden! 20 / 20