Am 14. September 2017 haben wir eine überarbeitete Fassung unserer Datenschutzrichtlinie veröffentlicht. Wenn Sie video2brain.com weiterhin nutzen, erklären Sie sich mit diesem überarbeiteten Dokument einverstanden. Bitte lesen Sie es deshalb sorgfältig durch.

Excel 2016 VBA Grundkurs

Neue Arbeitsmappe

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Arbeitsmappen lassen sich per VBA neu anlegen und anschließend verändern. Dabei sollten Sie darauf achten, dass Sie diese bereits beim Erstellen einer passenden Variablen zuweisen.

Transkript

Bevor wir uns mit den eigentlichen Daten in den Zellen beschäftigen, müssen wir uns erst mal damit beschäftigen, worin die Daten gespeichert sind, nämlich in Arbeitsmappen, oder auf englisch, in Workbooks. Ich sage ausdrücklich Arbeitsmappen und nicht Dateien, weil es sonst nämlich den Eindruck hinterlässt, es ginge auch um nur gespeicherte Dateien. Das tut es nicht. Arbeitsmappen sind ausdrücklich diejenigen die geöffnet sind. Die basieren natürlich auf Dateien, aber Sie können damit bestenfalls welche öffnen, aber die Auflistung der Arbeitsmappen, - der Workbooks - sind nur diejenigen, die auch in Excel gerade offen sind. Und zudem kann ich mir jetzt einfach mal Informationen anzeigen lassen, also z.B. den Namen der aktiven Arbeitsmappe: "sub NameDerAktivenArbeitmappe", wobei Sie natürlich recht haben, dass Sie den da oben auch schon sehen, es soll ja auch nur die Technik zeigen. Z.B. würde ich dann mit "debug.Print" natürlich, den Namen anzeigen lassen, und im Arbeitsbereich "ActivWorkbook" ist das Objekt das ich brauche und das hat, wie praktisch alle anderen Objekte auch, eine "Name"-Eigenschaft. Und wenn ich das Speichern mit F5 laufen lasse, dann steht da unten erwartungsgemäß genau dieser Name. Von der Arbeitsmappe weiß ich allerdings noch mehr, oder kann es erfragen, und wenn ich jetzt jedes mal hier "ActivWorkbook.(Eigenschaft)" schreiben müsste, - das ist zugegeben noch nicht furchtbar lang, aber lästig - dann möchte ich das lieber ausklammern, d.h. ich werde das mit Strg+X schon mal ausschneiden, und hier davor schreiben, in so einer "With"-Konstruktion. Und hier kommt das "End With". Falls Sie sich gerade wundern warum ich das nicht einrücke, das mache ich schon, so wie ich es jetzt markiere, aber gemeinsam mit der Tabulator-Taste. Da können Sie mit Tabulator beliebig einrücken und mit Shift+Tab oder Umschalt-Tabulator wieder ausrücken. D.h. der Aufwand, den Code ordentlich zu formatieren, ist sehr sehr gering, das geht auch so blockweise. Und innerhalb dieser "With"-Konstruktion kann ich jetzt weiterhin, - an dem "debug.Print" komm ich nicht vorbei - aber kann ich weiterhin, mit dem Punkt, mir die Eigenschaften anzeigen lassen. Zu dem "Name" gibts nämlich auch noch den "Path", den Pfad alleine. Und es gibt noch eine dritte Variante. Die heißt dann "FullName" und die ist so was ähnliches wie Pfad und Dateiname zusammen, aber mit einer ganz kleinen Verbesserung über die man sonst immer stolpert. Also wenn ich das Ganze speichere und mit F5 laufen lasse, dann sehen Sie hier den einzelnen Dateinamen, hier den Pfad, zufällig liegt diese Datei nämlich im Root vom Laufwerk Z und wenn Sie das zusammensetzen, dann fehlt klassischerweise hinter einem Pfad, auch hier, immer der Backslash. Den müssen Sie also immer dransetzten. Sie können sich natürlich eine Function schreiben. Ich bastle die mal eben dazwischen. Die gehört da nur halb rein. Also eine Function die heißt bei mir gerne "PfadMitBackslash" und der gebe ich einen Pfad, als "String", und die gibt einen "String" zurück, und das kann man sehr schön mit der "iif"-Funktion machen, also "PfadMitBackslash" ist gleich, hier der Pfad, und je nachdem ob der am Ende schon einen Backslash hat, schreibe ich einen dran, oder nicht, denn es kann ja sein, dass ich da einen Pfad kriege, der schon einen Backslash am Ende hat, dann darf ich keinen zweiten dranhängen. Also hier prüfe ich mit der "iif"-Funktion, ob ganz am Ende, "Right (strPad,1", ob dass letzte Zeichen zufällig schon ein Backslash ist. Wenn das der Fall ist, passiert nichts. Andernfalls hänge ich einen Backslash dran. Also das ist der spannende Punkt hier, die "IIf"-Kunktion hat hier mit der "Right"-Funktion, die einfach von dieser Zeichenkette rechts ein Zeichen herausoperiert, und das vergleiche ich mit dem Backslash. Wenn das also schon Backslash ist, hänge ich nichts dran, sonst hänge ich einen Backslash dran. Das können wir ganz locker da unten eben probieren: "?PfadMitBackslash" und jetzt übergebe ich irgendwas, z.B. einen der keinen Backslash hat und kriege einen mit Backslash zurück, und angenommen, er hat schon einen Backslash dran, - jetzt muss ich da drunter einfach mal löschen - dann bleibt der Backslash. Das lohnt sich also in diesem Zusammenhang, sich so eine Function zu bauen, die das immer berücksichtigt, damit wenn Sie aus irgend einem Grund mal einen Pfad und einen Dateinamen zusammensetzten, hier immer einen gültigen Backslash drin haben. Das war aber eigentlich nur so eine Nebenfunktion, die in diesem Zusammenhang gerne gebraucht wird. Was ich vor allem möchte, ist eine neue Arbeitsmappe aufzumachen. Also hier "sub NeueArbeitsmappeAnlegen" und das ist ganz banal. Sie sagen der Workbooks-Auflistung, - wenn ich sie denn richtig geschrieben hätte - dass sie mit "Add" ein neues Element hinzufügen soll. Das war es schon. Sie werden es gleich kurz blitzen sehen. Also wir können mal hier oben nachgucken. Ich mache mal hier die Module zu. Da ist die einzige, offene Datei mit ihren Tabellen. Das ist jetzt nicht besonders spannend und wenn ich das jetzt mit F5 ausführe, - da muss ich gucken, dass das irgendwie sichtbar wird - - ich mache mal hier die Eigenschaften zu - also mit F5, dann haben Sie es kurz blitzen sehen, und hier ist die zweite Datei geöffnet, mit Alt+F11 können wir die auch angucken. Und ich mache sie direkt mit Strg+F4 zu. Die hilft uns nicht wirklich weiter und mit Alt+F11 geht´s wieder zurück. Das klappt, das würde ich mir aber gar nicht erst angewöhnen! Das ist die schlampige Version. Sie können, wenn Sie anschließend auf diese neue Arbeitsmappe zugreifen wollen, nur mit ActivWorkbook arbeiten. Und Sie haben verloren, wenn Sie zwei neue Arbeitsmappen anlegen, z.B. eine für eine Quelle und eine für ein Ziel, oder beispielsweise für die englische oder die deutsche Version, zwei Dateien parallel pflegen und nur eine kann ActivWorkbook sein, an die andere kämen Sie nicht mehr dran, denn Sie wissen ja nicht, wie sie heißt. Die heißt völlig zufällig Mappe1, Mappe7, Mappe21. Also machen Sie es gleich richtig mit einer Objektvariablen und zwar vom Datentyp Workbook, deswegen werde ich die mit "wbk"-Präfix versehen und ich nenne die im Moment jetzt einfach erstmal "Neu" "as Workbook" und dann ändert sich diese unspezifische Zeile, so dass Sie konkret sagen "set wbkNeu" ist gleich und hier kommen die Klammern dran. Sie haben es vielleicht bemerkt, diese Methode "Add" hat sich soeben geändert. Vielleicht nicht besonders auffällig, aber eigentlich sehr drastisch. Sie erinnern sich noch an "sub" und "function". Eine "sub" macht was ohne Rückgabewert, eine "Function", kann auch was machen und hat Rückgabewert, und Methoden, "Add" ist eine Methode, können beides. In der vorhergerigen Schreibweise war "Add" eine Methode die einer "sub" ähnelt, die also nur was macht. Und jetzt ist es eine Methode mit Rückgabewert, die wie eine Function, an einen Aufrufer etwas zurückgibt, nämlich das Objekt das entstanden ist. Und dann kann ich ganz gezielt sagen mit "debug.Print", dass ich gerne von "wbkNeu" den Namen wissen möchte. Ich nehme das hier unten mal weg. Vorher hätte ich nur "ActivWorkbook" sagen dürfen. Wenn ich das jetzt ausführe, das ist jetzt Mappe 2 und beim nächsten Mal ist es Mappe3. Sie sehen, hier geht immer eine nach der nächsten auf. Ich kann also nie bestimmen wie die nächste heißt, und hier habe ich sie aber trotzdem im Griff. Ich kann ja auch mehrere Objekte anlegen und dann jedes mal wenn ich ein Workbook hinzufüge, das dann entsprechend in einer Variablen speichern oder irgendwann sollte man natürlich einen Array machen. D.h. das ist also das Typische was man macht, wenn man eine neue Arbeitsmappe anlegen will, es sei denn, - das sehen Sie wenn Sie hier die Klammer nochmal öffnen - Sie lassen diese auf einer Vorlage basieren, auf einem Template, dann würden Sie hier noch einen Pfad und Dateinamen angeben.

Excel 2016 VBA Grundkurs

Lassen Sie sich systematisch in die Excel-Programmierung mit Visual Basic for Applications (VBA) einführen.

7 Std. 25 min (66 Videos)
Derzeit sind keine Feedbacks vorhanden...
 
Hersteller:
Exklusiv für Abo-Kunden
Erscheinungsdatum:30.08.2016

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!