VBA (Visual Basic for Application) Zugriff auf Excel

Ähnliche Dokumente
Access 2010 Programmierung Import und Export nach Excel

VBA (Visual Basic for Application) Austausch von Daten

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

Office Objektmodell (1)

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

Interoperabilität mit Office-Anwendungen (1)

Access und die andern (Office) Programme. Armin Hess

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

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

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

4. Kooperation mit Word, etc. (OLE)

VBA (Visual Basic for Application) D(ata) A(ccess) O(bjects)

White Paper Wählen-Buttons in Excel

Microsoft Access 2010 Bilder

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

Access 2000 Programmierung

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

Workshop 6: VBA-Programmierung mit MS Excel

11. AUSFÜLLKÄSTCHEN. Aufgabe:

Access 2010 Programmierung Datenzugriff mit Hilfe von VBA

Vorwort Einführung in Power Query Erste Abfrage erstellen... 21

Ulrich Stein

Microsoft Excel VBA - Einführung

Microsoft Access Arbeiten mit Tabellen. Anja Aue

Datenbanksysteme 2011

2 Seite einrichten -= Entstanden unter Excel 2003 =-

Access 2003 Programmierung mit Visual Basic

Einleitung Erste Abfrage erstellen...2

Die SQL-Schnittstelle

-Vorlagen erstellen Outlook

SQL. Structured Query Language

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

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

Befehl Tabelle sortieren Befehl Tabelle drucken Befehl Tabelle als *.Pdf erstellen Tabelle als Pdf-Datei mit Outlook mailen...

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

OLConnector Programmierung

1. Die Excel-Arbeitsumgebung

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

Excel VBA Grundlagen

Beispiel des Zusammenführens der APV- Tabellen Stammdaten und Verlaufsdaten mithilfe von Access

Excel-Optionen über Steuerelemente setzen

2.4 - Das Verwaltungsmodul moveon installieren - MS Access Version

Erstellen einer Excel-Tabelle für die Bundesjugendspiele

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

Verteilte Datenbanken

Datenbanksysteme 2015

Word 2007 Einfügen oder Erstellen einer Tabelle

Installations- und Bedienungsanleitung für Macro Excel_Table Version 10

IT > Anleitungen > Windows, Outlook Verteilerlisten erstellen (vor 2010) Verteilerliste erstellen

Access für Windows. Andrea Weikert 1. Ausgabe, Oktober Grundlagen für Anwender

VBA (Visual Basic for Application) Verbindung zur Datenbank mit Hilfe von DAO

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

MELANIE BREDEN MICHAEL SCHWIMMER. Das Excel-VBA Codebook

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

Bilderverwaltung mit Access

Lösungen entwickeln mit Microsoft Excel 95

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

1 MAKROS AUFZEICHNEN. 1.1 Einführung

Inhalt OpenOffice Writer: Grafik und Tabelle

BERTSCH Dampftafel und Prozesse Excel-Makros FAQ

Die SQL-Schnittstelle

Workshop 7: VBA-Programmierung mit MS Excel

VBA (Visual Basic for Application) Einführung

ACCESS. Laufende Summen in Tabellen TABELLEN ENTWERFEN LAUFENDE SUMMEN IN TABELLEN BASICS

Menue Vorher Nachher Bemerkungen

snap Erfassungsblattmutation Gebrauchsanleitung Inhalt

$ Sie vertiefen Ihr VBA-Wissen, indem Sie weitere Beispiele, diesmal von ACCESS realisieren.

Geschrieben von: Marcus Rose Mittwoch, 28. Mai 2008 um 17:14 Uhr - Aktualisiert Montag, 09. März 2009 um 06:33 Uhr

Objekte. Excel Makros und VBA, Seite 2

Programmieren in Anwendungen

6 OLE2 und MS Office Integration

Listenfeldauswahl speichern und wiederherstellen

Anleitung Word Starter

9. Abfrage erstellen (Query Builder Report)

Verknüpfte Daten kopieren

Führungsmittelsatz - Anleitung -

Mit der Funktion SERIENDRUCK können Sie Briefe, - Nachrichten, Umschläge, Etiketten oder Verzeichnisse erstellen.

Adobe Acrobat Professional - Portfolio. Leibniz Universität IT Services Anja Aue

Herzlich willkommen zum Kurs "MS Word 2003 Professional"

Programmierung von MS-Office mit Visual Basic

Kennen, können, beherrschen lernen was gebraucht wird

Kapitel 3 Datentypen, Variablen und Konstanten

Whitepaper. Produkt: combit Relationship Manager 5. Import von Adressen nach Firmen und Personen. combit GmbH Untere Laube Konstanz

C# - Einführung in die Programmiersprache Arbeiten mit ADO.NET. Leibniz Universität IT Services Anja Aue

NeDocS Update. Version Stand 30. Oktober Version Oktober 2009 BinSoft GmbH, Oldenburg Seite 1 von 9

xcall White Paper Wählen-Buttons in Excel

Um einen Datenverlust zu vermeiden empfehlen wir Ihnen Ihre gespeicherten Lastschriftvorlagen zu sichern.

Trainerinfo Excel Grundkurs Seite 1

Übersicht der wichtigsten MySQL-Befehle

PHP- Umgang mit Datenbanken (1)

Aktivierung von Makros. Makrosicherheit. Die Funktionen der Gebäudedatenblätter benötigen die Ausführung von Makros.

CSV-Import von Kontakten. Leicht gemacht

Neues schreiben. Nachrichten Fenster. Klicken Sie auf «Neu», um direkt ins Nachrichtenfenster zu wechseln.

1 Datenübernahme ohne VBA Grundlagen der VBA Programmierung Inhalt

1 Verwendung bestehender Zellinhalte aus anderen Tabellen bzw. Mappen

Einführung in die Programmierung mit VBA

Transkript:

VBA (Visual Basic for Application) Zugriff auf Excel

Excel einbinden Klicken Sie auf das Menü Extras Verweise im VBA-Editor. Der Verweis Microsoft DAO 3.6 Object Library ist aktiviert. Der Verweis Microsoft Microsoft Excel 11.0 Libray ist aktiviert. OpenOffice 07.12.07 Folie 2

Datenmodell Application (Excel-Anwendung.) Workbook (Arbeitsmappe) Worksheets (Alle Tabellenblätter Worksheet Range (Tabellenzellen) OpenOffice 07.12.07 Folie 3

Neue Abfrage erstellen Sub newquery() Dim sql As String Dim qry As QueryDef Dim pfad As String sql = "SELECT * FROM tab_lieferant WHERE ort LIKE 'Mölln'" Set qry = CurrentDb.CreateQueryDef("Lieferant", sql) pfad = Application.CurrentProject.Path & "\lieferant.xls" End Sub OpenOffice 07.12.07 Folie 4

Pfad eines Projekts Sub exporttransfer() Dim sql As String Dim qry As QueryDef Dim pfad As String sql = "SELECT * FROM tab_lieferant WHERE ort LIKE 'Mölln'" Set qry = CurrentDb.CreateQueryDef("Lieferant", sql) pfad = Application.CurrentProject.Path & "\lieferant.xls" End Sub Application.CurrentProject beschreibt die aktuell geöffnete Datenbank. Path gibt den Speicherort zurück. OpenOffice 07.12.07 Folie 5

Daten nach Excel transferieren Sub exporttransfer() Dim sql As String Dim qry As QueryDef Dim pfad As String Err.Clear sql = "SELECT * FROM tab_lieferant WHERE ort LIKE 'Mölln'" On Error GoTo errormeldung Set qry = CurrentDb.CreateQueryDef("Lieferant", sql) errormeldung: If (Err.Number = 3012) Or (Err.Number = 0) Then pfad = Application.CurrentProject.Path & "\lieferant.xls" DoCmd.TransferSpreadsheet acexport, acspreadsheettypeexcel8, "Lieferant", pfad, True End If End Sub OpenOffice 07.12.07 Folie 6

Daten nach Excel transferieren Sub exporttransfer() Dim sql As String Dim qry As QueryDef Dim pfad As String Err.Clear sql = "SELECT * FROM tab_lieferant WHERE ort LIKE 'Mölln'" On Error GoTo errormeldung Mit Hilfe dieses Makro-Befehls können Set qry = CurrentDb.CreateQueryDef("Lieferant", Daten aus Access in sql) eine Excel- Tabelle exportiert oder importiert errormeldung: werden. Mit Hilfe von True werden die If (Err.Number = 3012) Or (Err.Number Tabellennamen = 0) Then als pfad = Application.CurrentProject.Path Spaltenüberschriften & "\lieferant.xls" genutzt. DoCmd.TransferSpreadsheet acexport, acspreadsheettypeexcel8, "Lieferant", pfad, True End If End Sub OpenOffice 07.12.07 Folie 7

Daten im Excel-Format ausgeben Sub exportoutput() Dim sql As String Dim qry As QueryDef Dim pfad As String sql = "SELECT * FROM tab_lieferant WHERE ort LIKE 'Mölln'" Set qry = CurrentDb.CreateQueryDef("Lieferant", sql) pfad = Application.CurrentProject.Path & "\lieferant.xls" DoCmd.OutputTo acoutputquery, "Lieferant", acformatxls, pfad End Sub Mit Hilfe dieses Makro-Befehls können Daten in andere Formate ausgegeben werden. Hier wird die Abfrage "Lieferant" in einem Excel-Format ausgegeben. OpenOffice 07.12.07 Folie 8

Excel-Anwendung öffnen Dim pfad As String Dim xlsdatei As String Dim xlsapp As Excel.Application pfad = Application.CurrentProject.Path xlsdatei = "lieferant.xls" pfad = pfad & "\" & xlsdatei Set xlsapp = CreateObject("Excel.Application") xlsapp.visible = True Mit Hilfe von CreateObjekt wird eine Office- Anwendung gestartet. In diesem Beispiel wird eine Excel-Anwendung gestartet. Mit Hilfe von VBA kann auf die verschiedenen Elemente von Excel zugegriffen werden. OpenOffice 07.12.07 Folie 9

Excel-Anwendung einblenden Dim pfad As String Dim xlsdatei As String Dim xlsapp As Excel.Application pfad = Application.CurrentProject.Path xlsdatei = "lieferant.xls" pfad = pfad & "\" & xlsdatei Set xlsapp = CreateObject("Excel.Application") xlsapp.visible = True Die Eigenschaft Sichtbar der Anwendung wird gesetzt. Die Anwendung wird am Bildschirm angezeigt. OpenOffice 07.12.07 Folie 10

Excel-Anwendung schließen Dim pfad As String Dim xlsdatei As String Dim xlsapp As Excel.Application pfad = Application.CurrentProject.Path xlsdatei = "lieferant.xls" pfad = pfad & "\" & xlsdatei Set xlsapp = CreateObject("Excel.Application") xlsapp.visible = True xlsapp.quit Die Anwendung wird geschlossen. OpenOffice 07.12.07 Folie 11

Workbooks... ist eine Auflistung aller geöffneten Arbeitsmappen. Jede Arbeitsmappe enthält n Tabellenblätter Workbook beschreibt eine Arbeitsmappe. OpenOffice 07.12.07 Folie 12

Arbeitsmappe erstellen Dim pfad As String Dim xlsdatei As String Dim xlsapp As Excel.Application Dim xlsbook As Excel.Workbook pfad = Application.CurrentProject.Path xlsdatei = "lieferant.xls" pfad = pfad & "\" & xlsdatei Set xlsapp = CreateObject("Excel.Application") xlsapp.visible = True Set xlsbook = xlsapp.workbooks.add xlsbook.saveas pfad Workbooks ist eine Auflistung aller geöffneten Arbeitsmappen. Dieser Liste wird mit Hilfe von Add eine neue Arbeitsmappe hinzugefügt. OpenOffice 07.12.07 Folie 13

Arbeitsmappe speichern Dim pfad As String Dim xlsdatei As String Dim xlsapp As Excel.Application Dim xlsbook As Excel.Workbook pfad = Application.CurrentProject.Path xlsdatei = "lieferant.xls" pfad = pfad & "\" & xlsdatei Set xlsapp = CreateObject("Excel.Application") xlsapp.visible = True Set xlsbook = xlsapp.workbooks.add xlsbook.saveas pfad Die neue Arbeitsmappe wird gespeichert. OpenOffice 07.12.07 Folie 14

Arbeitsmappe öffnen und schließen Dim pfad As String Dim xlsdatei As String Dim xlsapp As Excel.Application Dim xlsbook As Excel.Workbook pfad = Application.CurrentProject.Path xlsdatei = "klima.xls" pfad = pfad & "\" & xlsdatei Set xlsapp = CreateObject("Excel.Application") xlsapp.visible = True If Dir(pfad) = "" Then MsgBox("Die Datei ist nicht vorhanden") Exit Sub End If Falls die angegebene Datei vorhanden ist, wird diese mit Hilfe von Open geöffnet..close schließt die Arbeitsmappe. Set xlsbook = xlsapp.workbooks.open(pfad) xlsbook.close OpenOffice 07.12.07 Folie 15

Worksheets... ist eine Auflistung aller Tabellenblätter. Worksheet ist ein bestimmtes Tabellenblatt. Jedes Tabellenblatt enthält Informationen zu einem bestimmten Informationen in Zeilen und Spalten. Eine Arbeitsmappe enthält mindestens ein Tabellenblatt und maximal 255. OpenOffice 07.12.07 Folie 16

Tabellenblatt erstellen Dim xlsdatei As String Dim xlsapp As Excel.Application Dim xlsbook As Excel.Workbook Dim xlssheet As Excel.Worksheet Set xlssheet = xlsbook.worksheets.add ActiveSheet.Name = "Lieferant" Mit Hilfe von Add des Worksheets wird ein neues Tabellenblatt erstellt. Worksheets.Add After:=Worksheets(2) legt das neue Tabellenblatt hinter dem zweiten Tabellenblatt an. Worksheets.Add Before:=Worksheets(2), Count:=3 legt drei neue Tabellenblätter vor dem zweiten Tabellenblatt an. OpenOffice 07.12.07 Folie 17

Namen vergeben Dim xlsdatei As String Dim xlsapp As Excel.Application Dim xlsbook As Excel.Workbook Dim xlssheet As Excel.Worksheet Set xlssheet = xlsbook.worksheets.add ActiveSheet.Name = "Lieferant" ActiveSheet bezeichnet das im Vordergrund liegende Tabellenblatt. Mit Hilfe der Eigenschaft.Name wird dem Tabellenblatt eine Bezeichnung übergeben. OpenOffice 07.12.07 Folie 18

Tabellenblatt auswählen Dim xlsdatei As String Dim xlsapp As Excel.Application Dim xlsbook As Excel.Workbook Dim xlssheet As Excel.Worksheet Set xlssheet = xlsbook.worksheets("klimahannover") xlssheet.select Mit Hilfe des Namens kann ein bestimmtes Tabellenblatt in einer Arbeitsmappe angesprochen werden. Die Methode.Select wählt ein bestimmtes Tabellenblatt aus und aktiviert dieses. OpenOffice 07.12.07 Folie 19

Zeilen und Spalten ActiveSheet.Columns(1) spricht die erste Spalte im aktiven Tabellenblatt an. ActiveSheet.Columns("A") nutzt den Spaltennamen. ActiveSheet.Rows(1) spricht die erste Zeile im aktiven Tabellenblatt an. OpenOffice 07.12.07 Folie 20

... einfügen ActiveSheet.Columns(strName).Insert fügt eine Spalte ein. Die nachfolgenden Spalten werden um eine Position nach rechts verschoben. ActiveSheet.Rows(position).Insert fügt eine Zeile ein. Alle anderen Zeilen werden nach unten verschoben. ActiveSheet.Columns("C:E").Insert fügt einen Bereich von Spalten ein. Der Anfang und das Ende werden durch ein Doppelpunkt getrennt. Hier werden zum Beispiel drei Spalten nach der Spalte B eingefügt. ActiveSheet.Columns("C:E, S:U").Insert fügt einen nicht zusammenhängenden Bereich ein. Die einzelnen Bereiche werden durch Kommata getrennt. OpenOffice 07.12.07 Folie 21

... löschen ActiveSheet.Columns(strName).Delete löscht eine Spalte ein. Die nachfolgenden Spalten werden um eine Position nach links verschoben. ActiveSheet.Rows(position).Delete löscht eine Zeile ein. Alle anderen Zeilen werden nach nach verschoben. ActiveSheet.Rows("3:6").Delete löscht einen Bereich von Zeilen ein. Der Anfang und das Ende werden durch ein Doppelpunkt getrennt. Hier werden zum Beispiel die Zeilen 3, 4, 5 und 6 gelöscht. ActiveSheet.Columns("C:E, S:U").Delete löscht einen nicht zusammenhängenden Bereich ein. Die einzelnen Bereiche werden durch Kommata getrennt. OpenOffice 07.12.07 Folie 22

Zellen ansprechen Set dbs = CurrentDb Set rs = dbs.openrecordset("select * FROM tab_lieferant") xlssheet.cells(1, 1).CopyFromRecordset rs.cells beschreibt immer durch die Angabe der Zeile und der Spalte eine bestimmte Zelle in einem Tabellenblatt.Cells(Zeile, Spalte).Value gibt den Wert der Zelle zurück..cells(zeile, Spalte).CopyFromRecordset kopiert ab einer bestimmten Zelle den Inhalt eines Recordsets in eine Excel-Tabelle. OpenOffice 07.12.07 Folie 23