Excel 2016 VBA für Profis

Datei löschen

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Der Kill-Befehl löscht Dateien sofort und unwiederbringlich, daher empfiehlt es sich, ein paar Sicherheitsüberprüfungen um diesen Befehl herum zu packen.

Transkript

Sobald ich Dateien erstellen kann, ist es eigentlich auch sinnvoll, dass ich sie irgendwie wieder loswerde und löschen kann. Dazu schreibe ich schonmal die zweite Prozedur: Sub LoescheDatei, nie mit Umlauten in Namen arbeiten, wenn es sich irgendwie vermeiden lässt, also hier "Loesche Datei". Insofern ist modExport nicht mehr ganz richtig. Vielleicht sollten wir es besser modModul für die Datei nennen. Der Befehl, um eine Datei zu löschen, ist von erfreulicher Kürze. Er heißt "kill" und macht genau das, was er verspricht. Die Datei ist sowas von weg, das ist nicht der heutige Schmusekurs mit "Möchten Sie diese Datei löschen?" und dann wird sie in ein anderes Verzeichnis gelegt, nämlich den Papierkorb, wo man sie wieder herstellen kann. Sondern es ist wirklich genau das, was der Befehl verspricht: Die Datei ist weg. Nicht wiederherstellbar. Ohne Rückfrage. Grundsätzlich muss dann natürlich angegeben werden, welche Datei, und zwar auch in welchem Pfad, deswegen kopiere ich das mal eben von da aus runter. Das ist sozusagen die Minimalanforderung, wenn ich das jetzt auslöse, ist ohne Rückfrage diese Datei weg. Das können wir einmal eben kucken. Sie sehen im Moment hier in einer kleinen Version des Explorers, hier ist die Datei zu sehen, einmal F5 gedrückt, keine Rückmeldung in irgendeiner Form, und wenn ich das jetzt wieder einblende, sehen Sie, die Datei ist weg. So einfach. Das ist natürlich ziemlich riskant, deswegen sollte man das immer kapseln und das, was heute so üblich ist, diese Rückfragen, auch machen. Der "kill"-Befehl kann nicht in den Papierkorb legen, da müssen Sie ganz anders programmieren, aber er ist eben sehr schön einfach. Bevor Sie was löschen, sollten Sie also fragen. Zum Beispiel, fragen Sie den Nutzer mit dieser "msgbox"-Funktion Ich sage mal ganz einfach "Datei löschen?" Und das können wir mit einer vbQuestion versehen und wie sich's gehört, auch damit klar ist, wer denn fragt, mit dieser konstanten AppName. Und da das ja die Funktion ist, muss ich auch hier sinnvollerweise die Buttons angeben. Allerdings natürlich andersrum. Der Title sollte der AppName werden. Zuerst muss ich, das Komma können wir schonmal setzen, die Question, die Buttons machen, da sind wir jetzt richtig. Also +vbOKCancel und sicherheitshalber +vbDefaultButton2, also Cancel ist vorbelegt. Und dann, Klammer zu, gleich, nur wenn's vbOK ist, "then" wird das "kill" ausgeführt. "And if" und so weiter. Also wenn ich jetzt hier speichere und das ganze mit F5 starte, dann sehen Sie hier die Rückfrage, aber die ist unbefriedigend, denn man fragt sich, welche Datei denn eigentlich. Ich gehe mal auf Löschen. Es gibt ja sowieso nichts zu löschen, die Datei ist gerade weg. Also sollten wir den Namen hier nennen. Der Name wird an zwei Stellen gebraucht, das bedeutet, ich werde ihn erst einmal ausschneiden und in eine Variable verlagern, also dim strDatei As String und dann strDatei= diesen Inhalt. Der kann jetzt wieder hier angehängt werden und jetzt kann ich auch hier hinterlegen und anzeigen, welche Datei eigentlich gemeint ist. Also in dieser Fassung, da ist also zwischen die beiden Zeichenketten eine Variable gehängt. Wie eben auch mit F5 starten, dann steht jetzt hier der Dateiname, aber Sie sehen schon, der ist nicht wirklich gut zu lesen, weil er so im Text verschwindet. Die einfachste Variante ist, dass Sie hier innerhalb der Gänsefüßchen, ein Hochkomma setzen, das ist das öffnende Hochkomma für den Dateinamen und da kommt das Schließende hin. Funktioniert wunderbar, können wir mit F5 angucken, da, in Hochkommata eingefasst. Das sieht ein klein bisschen anders aus, wenn Sie hier statt der einfachen Apostrophe-Hochkommata gern ein Gänsefüßchen hätten. Denn das Gänsefüßchen ist ja leider auch das Begrenzungszeichen für Strings-Verzeichenketten. Das ist aber nicht schlimm. Innerhalb von Zeichenketten müssen Sie das nur aufdoppeln. Das wird also im Ergebnis ein Gänsefüßchen, entsprechend hier auch den weg, und das ist das Gänsefüßchen, das angezeigt wird. Kann ich mit F5 wieder angucken. Das ist also die normale Version, wie ein Benutzer das erwarten würde. Was ein Benutzer allerdings auch erwarten würde, ist die Tatsache, dass nur dann gefragt wird, wenn es auch was zu löschen gibt. Wenn ich also die Datei, wie im Moment, gar nicht besitze, dann sollte ich auch gar nicht erst fragen, dann gibt's nix zu löschen. Ich werde hier mal einen Pseudo-Umbruch machen, Leerzeichen, Unterstrich, Return, ein bisschen eingerückt, damit man das jetzt besser lesen kann. Hier auch, denn dieser Bereich soll nur ausgeführt werden, wenn es überhaupt eine Datei gibt. Das kann ich, so wie es markiert ist, mit der Tabulator-Taste schonmal einrücken, und setze drumherum noch die Prüfung, ob es überhaupt eine Datei gibt, die so heißt. Dafür ist der "dir"-Befehl gut. Dem übergeben Sie genau den Pfad mit Dateinamen. Und wenn der einen Leerstring zurückgibt, dann hat er nichts gefunden. "Else", andernfalls, können Sie sich überhaupt um die Datei kümmern, dann ist sie nämlich auch da. Sie können gerne, wenn Sie wollen hier auch noch ne msgbox schreiben. Da bin ich versehentlich auf die Alt-Taste gekommen. Msgbox und hier jetzt notieren: "Datei existiert nicht". Können auch noch dazu sagen: "welche". Und da können wir wieder vbInformation und p_c mit dem AppName, damit man sieht, wer's war. Sie müssen hier nicht reagieren, aber das ist natürlich netter für einen Benutzer, ihn immer zu informieren. Jetzt lesen Sie mit F5, dass die Datei nicht gefunden ist. Nur, wenn ich sie erzeuge, das mache ich nochmal eben mit F5, alles exportiert, jetzt kann ich diese Prozedur mit F5 starten und werde jetzt auch gefragt, ob ich löschen will. Und dann kann ich hier auch sinnvoll mit der "OK"-Schaltfläche löschen. Und jetzt ist sie wieder weg. Also der eigentliche "kill"-Befehl geht sehr schnell, aber bevor Sie ihn ausführen, sollten Sie das absichern. Erstens durch eine Rückfrage, ob das wirklich so gemeint ist, und vorher vielleicht durch die Prüfung, ob da überhaupt was zu löschen ist.

Excel 2016 VBA für Profis

Nutzen Sie die Möglichkeiten der Programmiersprache VBA in Excel 2016, um eigene Dialoge zu erstellen, auf andere Arbeitsmappen zuzugreifen und wichtige Funktionen einzusetzen.

5 Std. 52 min (55 Videos)
Derzeit sind keine Feedbacks vorhanden...
Hersteller:
Exklusiv für Abo-Kunden
Erscheinungsdatum:25.01.2017

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!