Die Trickkiste VBA von Office nutzen

2
-Werbung-

Ich habe in den letzten Tagen zwei kleine VBA-Scripts (jeweils fr Excel / Word) auf der Arbeit geschrieben. Ehrlich gesagt, hatte ich mich mit dem Thema VBA noch nicht gro beschftigt, da ich aber schon lange mit Visual Basic programmiere, scheint es mir bisher kein Problem zu sein, sich schnell einzuarbeiten, da die Syntax recht hnlich ist.

Das Makro fr Excel ist eigentlich eher etwas rudimentr zu betrachten, da es eigentlich nur ein schlichter Namensabgleich in zwei verschiedenen Tabellen war, die bei bereinstimmung den eindeutigen Hash in die andere Tabelle kopierte.

Mein zweites Makro, dass ich heute Morgen fertiggestellt habe, mit einigen guten Anstzen und Problemlsungen durch den Freund WWW ;), gefiel mir persnlich da besser.

Folgende Problemstellung gab es zu lsen: Eine Mitarbeiterin brauchte eine Lsung, damit sie Serienbriefe aus Word heraus als PDFs gedruckt bekommt. Eigentlich ja keine so dramatische Sache, allerdings steckt der Teufel im Detail. Will man das Serienhauptdokument mit all seinen Datenstzen drucken, so werden alle Datenstze in eine PDF-Datei geschrieben. Genau das sollte ja nicht passieren!

Also galt es eine Lsung zu finden, damit aus jedem Datensatz eine eigene Datei erzeugt wurde. Nachdem dieses Problem gelst war, gab es schon das nchste. Der PDF-Drucker erzeugte leider keinen aussagekrftigen Namen, sondern blo einen, der sich aus dem Benutzernamen plus einer Jobnummer zusammensetzte. Damit man sich aber schneller bei einer groen Anzahl von Datenstzen zurechtfindet, galt es eine Lsung zu finden, die alle Dateien nach erfolgtem Druck durch die Bezeichnung eines fest definierten Datenfeldes eines jeden Datensatzes (z.B. der Nachname) umbenennt. Die Routine zum umbenennen war kein Problem. Allerdings dauerte es immer erst eine Weile, bis die erste Datei in dem Ausgabeordner die Datei erstellte, damit sie umbenannt werden konnte. Also musste noch eine Sleep-Routine eingebaut werden, die das Programm fr rund 10 Sekunden in den Tiefschlaf versetzte, sodass der PDF-Drucker es in dieser Zeit schaffte, die erste Datei zu erstellen.

Hintergrund hierzu ist, dass der Ausgabeordner zuvor geleert wird (eine andere Mglichkeit fiel mir nicht ein, damit das Programm wei, welche die erste umzubenennende Datei ist) und dann natrlicherweise ein Fehler kommt, wenn das Programm nach der ersten Datei (wird durch einen Zhler gefunden, da der Dateiname immer symmetrisch aufgebaut ist) sucht, aber keine findet. Hat der PDF-Drucker dann die erste Datei erstellt, ist der Zhler bereits ber die Jobnummer hinweg und somit luft der Zhler dann bis zum Buffer Overflow 😉

Aber jetzt lufts und das freut mich 😉 Vlt. schaffe ich es am Wochenende noch den Programmcode zu posten, falls es jemanden interessieren sollte.

[tags] VBA, Programmieren, Ausbildung[/tags]
-Werbung-

2 KOMMENTARE

  1. Hallo Rene,

    danke fr den Tipp, allerdings musste dieser PDF-Drucker verwendet werden, da er praktisch im Firmenstandard ist und nicht jeder irgendein Programm installieren kann/darf 😉

HINTERLASSEN SIE EINE ANTWORT

Please enter your comment!
Please enter your name here