Excel-VBA. Aktuell zu Excel 2010 BERND HELD

Ähnliche Dokumente
Controlling. Das Übungsbuch. Bernd Britzelmaier

C++ Programmieren mit einfachen Beispielen DIRK LOUIS

Einführung in die Allgemeine Betriebswirtschaftslehre

Start mit dem Notebook

Controlling. Bernd Britzelmaier. Das Übungsbuch. 2., aktualisierte Auflage

Inhaltsverzeichnis. Briefing 5. Lerneinheit 1. Lerneinheit 2

Grundlagen des Marketing

Bankwirtschaft. Das Arbeitsbuch. Ralf Jürgen Ostendorf

Access leicht klar sofort. Ignatz Schels

1 Bilder auf den Rechner bringen Gimp kennen lernen Schnelle Korrekturen 51. Inhaltsverzeichnis

Psychologie. Das Prüfungstraining zum Zimbardo. Deutsche Bearbeitung von Ralf Graf

Inhaltsverzeichnis. 1 Grundlagen 9. Einleitung... 5

Access leicht klar sofort. Ignatz Schels

Bevor wir richtig anfangen... 8

Windows Home Server. Einrichten, Optimieren, Fehler beheben THOMAS JOOS

Outlook Sehen und Können CAROLINE BUTZ

Inhaltsverzeichnis. Vorwort 11. Kapitel 1 Leben und lernen 13. Kapitel 2 Forschend studieren 67

Statistik mit SPSS Fallbeispiele und Methoden

Statistik ohne Angst vor Formeln

Grundzüge der Finanzmathematik

Psychologie macchiato

Word-VBA. VBA-Lösungen für Word 2000 bis 2007 BERND HELD ( KOMPENDIUM ) Einführung Arbeitsbuch Nachschlagewerk

3.1 Der Android Market und Alternativen Apps verwalten Den Speicher im Blick Android und die Sicherheit...

Erfolgreich studieren

Spektroskopie. Strukturaufklärung in der Organischen Chemie. Aus dem Amerikanischen von Carsten Biele

7 optische SigNAle zeigen uns,

Programmieren mit Java

Access 2010 Programmierung Import und Export nach Excel

Inhalt. Ein Vorspiel: Workshop (Bau-)haus entzerren...8 Kapitel 1: Bridge Die Kommandobrücke Kapitel 2: Benutzeroberfläche...

Meine erste Website. Sehen und Können

Buchführung und Bilanzierung nach IFRS

Liebe Leserinnen und Leser,

Grundzüge der Volkswirtschaftslehre. Peter Boinger Eric Mayer. Das Übungsbuch. 3., aktualisierte Aulage

24798.book Seite 1 Mittwoch, 1. August :16 12 Computerlexikon 2013

1 Picasa herunterladen & installieren 11

11.1 Parametrisierung einer ebenen Kurve Analysis mit der Parameterdarstellung Flächen und Längen in Polarkoordinaten...

Bibliografische Information der Deutschen Nationalbibliothek

Workshop 6: VBA-Programmierung mit MS Excel

Danksagung...6. Einleitung 7

Das erwartet dich in diesem Buch 6. Kapitel 1 Bevor es losgeht 12

Grundzüge der Finanzmathematik

Mathe macchiato Analysis

ISBN (Buch) ; (pdf) ; (epub)

Kapitel 3 Datentypen, Variablen und Konstanten

Outlook Sehen und Können CAROLINE BUTZ

KOSTEN- UND LEISTUNGSRECHNUNG

Technische Fotografie Für Naturwissenschaftlicher, Mediziner und Ingenieure

Detlef Fiebrandt, Claudia Koch FARBKONSISTENZ IN DER PROFIFOTOGRAFIE. Vom Bildschirm zum Ausdruck

Vorwort 5. 1 Das iphone als Fotoapparat 9

Inhaltsverzeichnis. Teil I Übungsaufgaben 1. Vorwort...

Ordnung ist das halbe Leben Wesen der Buchführung Aufgaben der Buchführung Arten des Rechnungswesens... 22

Bevor wir richtig anfangen... 10

Grundzüge der Volkswirtschaftslehre Eine Einführung in die Wissenschaft von Märkten

Inhaltsverzeichnis. TeilI Übungsaufgaben 1. Vorwort...

Wissenschaftlich mit PowerPoint arbeiten

Internationale Unternehmensbewertung

Christoph Prevezanos. Google. Picasa intensiv. Alles, was Ihre Fotos brauchen. Markt+Technik Verlag

Inhalt. KApitel 1. HDR-Fotograf: Ásmundur E. Þorkelsson...11

Leben oder Nichtleben das ist hier die Frage... 14

Makroökonomie. Das Übungsbuch. Josef Forster Ulrich Klüh Stephan Sauer. 4., aktualisierte Auflage

Facebook-Marketing für Einsteiger

»Wie mach ich das«titelei_inhalt.indd :44:28

Tutorien zur Physik. In Zusammenarbeit mit der Physics Education Group University of Washington

Themenübersicht Verwendung im Studium Voraussetzungen Ziele Website zum Buch Danksagungen... 21

Übungsbuch Elektrotechnik

Das Informatik-Kochstudio Sortieren Alltagsalgorithmen Komplexe Algorithmen... 55

Learning by Doing. Vorwort

a part of Pearson plc worldwide

Michael Gradias. Makrofotografie

Vorwort Nicht ohne meine Einheit! Die Grundgrößen Mit den Größen rechnen... 52

Das 1x1 für kleine Fotografen

Inhaltsverzeichnis. Vorwort 7. Kapitel 1 Einstieg 9. Kapitel 2 Schuhkarton ade Ordnung mit dem Organizer 19

Biostatistik. Eine Einführung für Biowissenschaftler

HTML Spielend gelingt die Website

Lineare Algebra. Theo de Jong. Higher Education. a part of Pearson plc worldwide

Die BlackBerry App World Alternativen zur App World Apps vom PC installieren

Menue Vorher Nachher Bemerkungen

Christian H. Kautz Tutorien zur Elektrotechnik

MELANIE BREDEN MICHAEL SCHWIMMER. Das Excel-VBA Codebook

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

Inhaltsübersicht Vorwort Einführung Moodle für Einsteiger/innen das kostenlose Lernmanagementsystem Mein erster Moodle-Kurs wie fange ich an?

Matthias W. Stoetzer Erfolgreich recherchieren

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

Kapitel 7 Der Übergang zu den zeitabhängigen Stromund Spannungsformen 15

Mathematik für Ingenieure 2

Technische Dokumentation Abstimmungs-/ Anwesenheitsliste

Übungen zur Makroökonomie

4.1 Der mobile Wissensspeicher E-Books Die erweiterte Realität...108

ISBN (Print); (PDF); (epub)

Martin Horn Nicolaos Dourdoumas. Regelungstechnik. Rechnerunterstützter Entwurf zeitkontinuierlicher und zeitdiskreter Regelkreise

Schaltsysteme Eine automatenorientierte Einführung

Lightroom 3 - PDF Inhaltsverzeichnis

Inhaltsverzeichnis. Teil 1: Grundlagen und Optimierung. Kapitel 1: Die Werkzeuge und die Oberfläche 11. Einleitung...8

jetzt lerne ich VBA mit Excel Arbeitsabläufe automatisieren BERND HELD

Objektorientierte Softwaretechnik

3.1 Gleichgewichtsbedingung Freikörperbild Ebene Kräftesysteme Räumliche Kräftesysteme

Transkript:

Excel-VBA Aktuell zu Excel 2010 BERND HELD

Auf Arbeitsmappen zugreifen Datei-Operationen Listing 4.2: Den Dialog Öffnen anzeigen Sub ArbeitsmappeÖffnenDialog() Dim DatOP As Variant DatOP = Application.GetOpenFilename("Excel-Dateien(*.xl*),*.xl*") If DatOP = False Then Exit Sub Workbooks.Open Filename:=DatOP Geben Sie bei der Methode GetOpenFilename den Filter an, nachdem Dateien im Dialog ÖFFNEN angezeigt werden. Da Sie Excel-Dateien im Dialog anzeigen möchten, geben Sie die Endung xl* an. Darunter fallen dann herkömmliche Arbeitsmappen aus den»alt-versionen«von Excel sowie die neuen Formate mit den Endungen xlsx und xlsm. Nach dem Aufruf des Dialogs müssen Sie prüfen, ob der Dialog ÖFFNEN mit der Schaltfläche ABBRECHEN wieder verlassen wurde. In diesem Fall wird in der Variablen DatOP der Wert False zurückgegeben, was mit einem Verlassen des Makros über die Anweisung Exit Sub quittiert wird. Im anderen Fall öffnen Sie mithilfe der Methode Open die ausgewählte Arbeitsmappe, die in der Variablen DatOP verzeichnet ist. Abbildung 4.1: Der Dialog Öffnen 178

Arbeitsmappen öffnen Über denselben Dialog haben Sie auch die Möglichkeit, mehrere Excel-Arbeitsmappen auf einmal zu öffnen. Für diesen Zweck müssen Sie das Makro aus Listing 4.2 ein wenig umschreiben. Listing 4.3: Mehrere Mappen können im Dialog Öffnen markiert werden. Sub ArbeitsmappenÖffnenDialog() Dim intdat As Integer Dim DatOP As Variant intdat = 0 DatOP = Application.GetOpenFilename _ ("Excel-Dateien(*.xl*),*.xl*", MultiSelect:=True) If IsArray(DatOP) Then Else For intdat = LBound(DatOP) To UBound(DatOP) Workbooks.Open DatOP(intDat) Next intdat End If MsgBox "Sie haben keine Arbeitsmappe ausgewählt" Zeigen Sie den Dialog ÖFFNEN an, indem Sie die Methode GetOpenFileName einsetzen. Damit Sie die Möglichkeit haben, mehrere Arbeitsmappen im Dialog über die Taste (Strg) zu markieren, müssen Sie hierbei das Argument MultiSelect auf den Wert True setzen. Im nächsten Schritt müssen Sie überprüfen, ob überhaupt wenigstens eine Arbeitsmappe im Dialog ÖFFNEN markiert wurde. Wenn ja, dann meldet die Funktion IsArray den Wert True. In diesem Fall stehen die markierten Namen der Arbeitsmappen im Datenfeld DatOP. Dieses Datenfeld wird anschließend über den Einsatz einer Schleife abgearbeitet. Dabei repräsentiert die Funktion LBound den ersten Eintrag im Datenfeld DatOP (die erste markierte Arbeitsmappe) und die Funktion UBound den letzten Eintrag im Datenfeld DatOP (letzte markierte Arbeitsmappe). Innerhalb dieser Schleife wenden Sie die Methode Open an, um die markierten Arbeitsmappen nacheinander zu öffnen. Über die Zählvariable sprechen Sie dabei eine Arbeitsmappe nach der anderen an. 179

Auf Arbeitsmappen zugreifen Datei-Operationen Abbildung 4.2: Den Dialog Öffnen mit Mehrfachauswahl anzeigen 4.1.3 Geöffnete Arbeitsmappen identifizieren Gerade wenn Sie mit mehreren geöffneten Arbeitsmappen arbeiten, dann müssen Sie genau wissen, welche Arbeitsmappen derzeit geöffnet sind. Im folgenden Makro werden alle zurzeit geöffneten Arbeitsmappen in einem Meldungsfenster am Bildschirm angezeigt: Listing 4.4: Alle geöffneten Arbeitsmappen im Überblick Sub MappenGeöffnetErmitteln() Dim Mappe As Workbook Dim strname As String For Each Mappe In Workbooks strname = Mappe.Name & Chr(13) & strname Next Mappe MsgBox "Folgende Mappen sind derzeit geöffnet: " & _ Chr(13) & strname, vbinformation + vbokonly Deklarieren Sie zu Beginn des Makros eine Objektvariable vom Typ WorkBook und eine Variable vom Typ String, die die Namen der geöffneten Arbeitsmappen aufnehmen soll. Danach setzen Sie eine Schleife auf und arbeiten alle geöffneten 180

Arbeitsmappen speichern Arbeitsmappen ab. Diese werden Ihnen über das Auflistungsobjekt Workbooks zur Verfügung gestellt. Speichern Sie die Namen der Arbeitsmappen mithilfe der Eigenschaft Name in der String-Variablen s. Nach jedem ermittelten Namen erzeugen Sie über die Anweisung Chr(13) eine neue Zeile. Nach dem Verlassen der Schleife geben Sie die ermittelten Namen der geöffneten Arbeitsmappen am Bildschirm aus. Abbildung 4.3: Diese Arbeitsmappen sind derzeit geöffnet. Bei dieser Lösung werden auch ausgeblendete Arbeitsmappen wie die Mappe PERSONL.XLSB aufgelistet. Die Mappe PERSONL.XLSB ist die zentrale Makroarbeitsmappe, in der Sie Makros ablegen können, die Sie auch für alle anderen Arbeitsmappen gebrauchen können. 4.2 Arbeitsmappen speichern Beim Speichern einer Arbeitsmappe müssen Sie wissen, wo Sie die Mappe speichern möchten. Dazu verwenden Sie die ChDrive-Anweisung, um das Laufwerk zu bestimmen, sowie die Anweisung ChDir, um das richtige Verzeichnis einzustellen. Jetzt fehlt nur noch der Name. Im folgenden Beispiel speichern Sie eine Arbeitsmappe. Listing 4.5: Eine Arbeitsmappe speichern Sub ArbeitsmappeSpeichern() Dim strname As String Const Pfad = "c:\daten" strname = ActiveWorkbook.Name ActiveWorkbook.SaveAs Filename:=Pfad & strname, FileFormat:= _ 181

Auf Arbeitsmappen zugreifen Datei-Operationen xlnormal, Password:="", WriteResPassword:="", _ ReadOnlyRecommended:=False, CreateBackup:=True Die Syntax der Methode SaveAs lautet: ActiveWorkbook.SaveAs(Filename, FileFormat, Password, _ WriteResPassword, ReadOnlyRecommended, CreateBackup, _ AddToMru, TextCodePage, TextVisualLayout, Local) Das Argument FileName haben Sie im Makro aus Listing 4.5 in der Variablen str- Name über die Eigenschaft Name ermittelt. Beim Argument FileFormat können Sie angeben, in welchem Format Sie Ihre Mappe speichern möchten. Mit dem nächsten Argument Password können Sie ein Passwort festlegen, das der Anwender beim Öffnen der Datei eingeben muss, um die Datei laden zu können. Im Beispiel aus Listing 4.5 wurde eine Leerzeichenfolge übergeben, was bedeutet, dass kein Passwort beim Öffnen der Datei abgefragt wird. Das Argument WriteResPassword sorgt dafür, dass ein Kennwort für die Schreiberlaubnis der Datei eingegeben werden muss. Auch hier wurde eine Leerzeichenfolge übergeben, was so viel bedeutet, dass beim Öffnen der so gespeicherten Arbeitsmappe kein Passwort eingegeben werden muss. Das Argument ReadOnlyRecommended setzen Sie auf True, wenn beim Öffnen der Datei in einer Meldung empfohlen werden soll, die Datei mit Nur-Lese-Zugriff zu öffnen. Belassen Sie das Argument auf dem Wert False, unterbleibt diese Meldung. Das Argument CreateBackup setzen Sie auf den Wert True, wenn Excel von der Mappe eine Sicherungskopie anlegen soll. Excel legt dann eine Sicherungskopie unter demselben Namen mit dem Zusatz SICHERUNGSKOPIE VON... und der Endung WLK an. Die übrigen Argumente sind in der Praxis nicht so relevant und werden an dieser Stelle nicht weiter beschrieben. Eine Beschreibung können Sie aber in der Online-Hilfe nachlesen. 4.2.1 Arbeitsmappe speichern über Dialog Genauso wie schon beim Öffnen einer Arbeitsmappe beschrieben, gibt es in VBA auch eine Methode, um den Dialog SPEICHERN UNTER anzuzeigen. Diese Methode heißt GetSaveAsFilename. Im folgenden Beispiel wird die momentan aktive Arbeitsmappe im Dialog SPEI- CHERN UNTER angezeigt. 182

Arbeitsmappen speichern Listing 4.6: Eine Arbeitsmappe im Dialog Speichern unter anzeigen Sub ArbeitsmappeSpeichernDialog() Dim DATCl As Variant DATCl = Application.GetSaveAsFilename _ (, "Excel-Dateien (*.xl*),*.xl*") If DATCl = False Then Else ActiveWorkbook.SaveAs ActiveWorkbook.Path & "\" & _ ActiveWorkbook.Name End If Bevor Sie den Dialog SPEICHERN UNTER aufrufen, sorgen Sie dafür, dass das gewünschte Laufwerk bzw. das Verzeichnis aktiviert wird. Setzen Sie dazu die Anweisungen ChDrive und ChDir ein. Danach rufen Sie über die Methode GetSaveAsFilename den Dialog SPEICHERN UNTER auf. Als Filter stellen Sie die Excel-Dateien mit der Endung xls ein. Vor diesem Filter haben Sie die Möglichkeit, einen Namen bereits vorzugeben. Im Beispiel aus Listing 4.6 wurde bewusst darauf verzichtet, um den Dateinamen von Excel selbst vorschlagen zu lassen. Abbildung 4.4: Arbeitsmappe speichern 183

Auf Arbeitsmappen zugreifen Datei-Operationen Im folgenden Beispiel aus Listing 4.7 werden Sie selbst einen Namen für die Arbeitsmappe festlegen sowie die Mappe im herkömmlichen Excel-Format speichern: Listing 4.7: Einen eigenen Namen bestimmen Sub EigenerNamen() Dim DATCl As Variant DATCl = Application.GetSaveAsFilename _ ("NEUEDATEI.XlS", "Excel-Dateien (*.xls),*.xls") If DATCl = False Then Else ActiveWorkbook.SaveAs DATCl End If In beiden Makros aus Listing 4.6 und Listing 4.7 müssen Sie dann prüfen, ob nicht eventuell auch die Schaltfläche ABBRECHEN geklickt wurde. In diesem Fall würde die Variable DATCl den Wert False zurück melden. Andernfalls speichern Sie die Arbeitsmappe, indem Sie die Methode Save anwenden. Abbildung 4.5: Den Dialog Speichern unter mit voreingestelltem Namen aufrufen 184

Arbeitsmappen speichern 4.2.2 Alle geöffneten Arbeitsmappen speichern Im nächsten Beispiel sollen alle derzeit geöffneten Arbeitsmappen gespeichert werden. Das Makro für diese Aufgabe lautet: Listing 4.8: Alle geöffneten Arbeitsmappen speichern Sub AlleMappenSpeichern() Dim Mappe As Workbook For Each Mappe In Workbooks Mappe.Save Next Mappe Deklarieren Sie zu Beginn des Makros eine Objektvariable vom Typ WorkBook. Danach setzen Sie eine Schleife auf und arbeiten alle geöffneten Arbeitsmappen ab. Innerhalb der Schleife setzen Sie die Methode Save ein, um die Arbeitsmappen zu speichern. 4.2.3 Arbeitsmappe speichern unter Datum/Uhrzeit Möchten Sie für Arbeitsmappen das aktuelle Tagesdatum sowie die momentane Uhrzeit als Dateinamen verwenden, dann können Sie das folgende Makro dafür einsetzen, nachdem Sie sicherstellen, dass der im Listing angegebene Pfad bei Ihnen auch verfügbar ist. Listing 4.9: Arbeitsmappe mit Datum/Uhrzeit benennen Sub MappeSpeichernMitDatumUndUhrzeit() Const LW = "C:\" Const Pfad = "C:\Daten" ChDrive LW ChDir Pfad ActiveWorkbook.SaveAs _ (Date & "_" & Hour(Time) & "_" & Minute(Time) & ".xls") 185

Auf Arbeitsmappen zugreifen Datei-Operationen Das aktuelle Tagesdatum für den Dateinamen bekommen Sie über die Funktion Date. Da im Dateinamen kein Doppelpunkt (Uhrzeit z.b. 12:30) vorkommen darf, müssen Sie die Zeitangabe mit den Funktionen Hour sowie Minute extrahieren und neu zusammensetzen. Abbildung 4.6: Die Arbeitsmappe nach Datum und Uhrzeit benennen 4.2.4 Arbeitsmappe bedingt speichern Eine Arbeitsmappe sollte nur dann gespeichert werden, wenn Änderungen an ihr vorgenommen wurden. Wenn Sie wissen möchten, ob Änderungen in der Arbeitsmappe seit dem letzten Öffnen der Arbeitsmappe gemacht wurden, sei es durch Verknüpfungen oder Benutzereingaben, dann steht Ihnen hierfür eine Eigenschaft namens Saved zur Verfügung. Sehen Sie sich nun das folgende Listing 4.10 an. Listing 4.10: Prüfung durchführen, ob Arbeitsmappe geändert wurde Sub ÄnderungArbeitsmappe() If ActiveWorkbook.Saved = False Then MsgBox "Die Mappe wurde geändert!" ActiveWorkbook.Save Else MsgBox "Arbeitsmappe ist unverändert!" End If Die Eigenschaft Saved liefert den Wert True, wenn die aktive Arbeitsmappe seit der letzten Speicherung nicht mehr geändert wurde. Gibt die Eigenschaft den Wert False zurück, wurden Änderungen an der Arbeitsmappe vorgenommen. 186

Arbeitsmappen schließen 4.3 Arbeitsmappen schließen Für das Schließen einer Arbeitsmappe steht Ihnen die Methode Close zur Verfügung. Wenn Sie eine Arbeitsmappe wieder schließen möchten, dann müssen Sie standardmäßig eine Meldung mit Ja bestätigen, wenn Sie Änderungen an der Mappe durchgeführt haben. Diese Meldung können Sie aber unterdrücken, wenn Sie in der Methode Close ein zusätzliches Argument angeben. 4.3.1 Arbeitsmappe schließen Änderungen speichern Im folgenden Beispiel wird die aktive Arbeitsmappe ohne weitere Rückfrage geschlossen. Die Änderungen in der Mappe werden dabei mit gesichert. Listing 4.11: Aktive Mappe schließen Änderungen speichern Sub ArbeitsmappeSchließen() ActiveWorkbook.Close SaveChanges:=True Die Methode Close schließt die Arbeitsmappe. Wird das Argument SaveChanges auf den Wert True gesetzt, werden Änderungen an der Arbeitsmappe gespeichert. 4.3.2 Arbeitsmappe schließen Änderungen verwerfen Demzufolge können Sie eine Arbeitsmappe schließen und die Änderungen an dieser Arbeitsmappe verwerfen, indem Sie folgendes Makro aus Listing 4.12 starten: Listing 4.12: Aktive Mappe schließen Änderungen verwerfen Sub ArbeitsmappeSchließenÄnderungenVerwerfen() ActiveWorkbook.Close SaveChanges:=False 187

Copyright Daten, Texte, Design und Grafiken dieses ebooks, sowie die eventuell angebotenen ebook-zusatzdaten sind urheberrechtlich geschützt. Dieses ebook stellen wir lediglich als persönliche Einzelplatz-Lizenz zur Verfügung! Jede andere Verwendung dieses ebooks oder zugehöriger Materialien und Informationen, einschliesslich der Reproduktion, der Weitergabe, des Weitervertriebs, der Platzierung im Internet, in Intranets, in Extranets, der Veränderung, des Weiterverkaufs und der Veröffentlichung bedarf der schriftlichen Genehmigung des Verlags. Insbesondere ist die Entfernung oder Änderung des vom Verlag vergebenen Passwortschutzes ausdrücklich untersagt! Bei Fragen zu diesem Thema wenden Sie sich bitte an: info@pearson.de Zusatzdaten Möglicherweise liegt dem gedruckten Buch eine CD-ROM mit Zusatzdaten bei. Die Zurverfügungstellung dieser Daten auf unseren Websites ist eine freiwillige Leistung des Verlags. Der Rechtsweg ist ausgeschlossen. Hinweis Dieses und viele weitere ebooks können Sie rund um die Uhr und legal auf unserer Website http://www.informit.de herunterladen