Word: Lesen und Schreiben von Absätzen per VBA

Nachdem wir in zwei weiteren Artikeln beschrieben haben, wir man auf Word-Dokumente zugreift und die Ereignisse von Word und den angezeigten Dokumenten nutzt, gehen wir nun einen Schritt weiter: Wir schauen uns an, wie wir die Inhalte von Word-Dokumenten lesen und schreiben können. Das ist nicht ganz trivial, denn natürlich enthält ein Word-Dokument nicht einfach nur Text, den wir in eine Variable übertragen und weiterverarbeiten können. Stattdessen gibt es eine Unterteilung in Absätze, Bereiche, Tabellen und viele weitere Elemente. Der Fokus dieses Artikels liegt daher auf der Untersuchung dieser Elemente und wie wir diese am besten per VBA programmieren können.

Weiterlesen

VBA-Ereignisse in Word programmieren

Microsoft Word bietet für das Application- und für das Document-Objekt einige sehr interessante Ereignisse an. Diese können wir implementieren und damit auf verschiedene Benutzeraktionen wie das Öffnen, Speichern oder Schließen eines Dokuments oder auch auf andere Aktionen zu reagieren. In diesem Artikel stellen wir die Ereignisse vor und zeigen, wie Du diese implementieren und mit eigenem Code füllen kannst. Damit lernst Du, wie Du auf das Öffnen, Schließen oder Anlegen von Dokumenten reagieren kannst oder wie sich Ereignisse programmieren lassen, die beim Drucken oder Speichern ausgelöst werden. Auch Aktionen wie ein Doppelklick oder ein Rechtsklick auf die Inhalte des Word-Dokuments lassen sich damit steuern. Wie das gelingt, zeigen wir in diesem Artikel.

Weiterlesen

Word mit VBA programmieren

Genau wie in Outlook oder Excel gibt es auch in Word ausreichende Möglichkeiten, um sich wiederholende Vorgänge zu automatisieren oder zu vereinfachen. Dazu benötigen wir die Programmiersprache VBA und das Objektmodell zur Programmierung von Word und den darin angezeigten Dokumenten. Im vorliegenden Beitrag schauen wir uns zunächst einmal an, wie wir von außen, also beispielsweise von einer anderen Anwendung aus, eine Word-Instanz initialisieren und diese nutzen können. Bei den weiteren Beispielen starten wir jedoch direkt vom VBA-Projekt des aktuell geöffneten Word-Dokuments aus.

Weiterlesen

COM-Add-In zum Übersetzen von Word-Dokumenten

Das Internet bietet für beinahe jeden Zweck einen Service. Auch für das Übersetzen von Texten. Ein Anbieter heißt DeepL. Er bietet nicht nur eine Benutzeroberfläche, in die man Texte eingeben kann, die direkt übersetzt werden, sondern auch noch eine API. Dieser können wir programmgesteuert Texte übergeben und die Übersetzung entgegennehmen. Das ist sehr praktisch für diejenigen Bereiche der Programmierung, wo man Texte in einer anderen oder in mehreren Sprachen braucht. In diesem Artikel wollen wir uns jedoch ansehen, wie wir aus den Techniken, die wir in weiteren Artikeln vorgestellt haben, ein COM-Add-In bauen, das sich nahtlos in die Word-Benutzeroberfläche eingliedert und auf Knopfdruck komplette Dokumente oder auch nur markierte Bereiche in die gewünschte Sprache übersetzt.

Weiterlesen

Übersetzen mit Word und DeepL

Nachdem wir schon gezeigt haben, wie Du Texte in einer Excel-Tabelle übersetzen kannst, schauen wir uns nun an, wir die die DeepL-Techniken für die Gegenüberstellung der englischen und der deutschen Version eines Textes nutzen können. Dazu wollen wir bei einem Text beginnen, der sich in einem Word-Dokument befindet und diesen in ein neues Dokument übertragen, wo wir die einzelnen Absätze des Textes in jeweils eine Zelle in der linken Spalte einer Word-Tabelle einfügen. Nachdem wir den Text so auf die Zellen einer Tabelle aufgeteilt haben, wollen wir in der rechten Spalte per Aufruf der DeepL-REST-API die Übersetzung in der gewünschten Sprache unterbringen. Das Ergebnis: Die Übersetzung eines Textes, wobei jeweils ein Absatz in der einen Sprache dem gleichen Absatz in der anderen Sprache gegenübergestellt wird.

Weiterlesen

Excel-Datei per COM-Add-In als .xlsm speichern

Wer viel mit Excel-Worksheets arbeitet und diesen regelmäßig VBA-Code hinzufügt, muss diese als .xlsm-Datei speichern, damit die Änderungen am VBA-Projekt beim Schließen nicht verlorengehen. Dazu muss man immer den Backstage-Bereich von Excel öffnen und einige Mausklicks durchführen. Wie wäre es, wenn man diese Aktion direkt im Backstage-Bereich finden würde – und nur noch einen Mausklick tätigen müsste, damit das aktuelle Excel-Worksheet nicht nur unter dem gleichen Namen und der Dateiendung .xlsm gespeichert wird, sondern auch noch die ursprüngliche .xlsx-Datei gelöscht wird? Wie das geht, zeigen wir in diesem Artikel.

Weiterlesen

VBA Basics: Schleifen

Wenn wir in VBA einen Vorgang mehr als einmal durchführen wollen, verwenden Sie dazu eine sogenannte Schleife. Davon gibt es verschiedene Arten: Einige, wie die For…Next-Schleife und die For Each-Schleife, werden entsprechend einer vorgegebenen Anzahl durchlaufen, andere solange, wie eine bestimmte Bedingung erfüllt ist – so zum Beispiel die Do While-Schleife. Dieser Artikel stellt die verschiedenen Schleifenarten vor und zeigt, welche sich für welchen Einsatzzweck eignet.

Weiterlesen

Outlook: E-Mail-Anlagen verarbeiten

E-Mails können unterschiedlichste Dateien als Anlagen enthalten. Von der Rechnung über Beispieldatenbanken, Word-Dokumente, PDFs oder Excel-Datenbanken. In manchem Fällen möchte man diese automatisiert weiterverarbeiten – beispielsweise, um Rechnungsdokumente einzulesen oder auch um die Dateien einfach nur an einer Stelle im Dateisystem zu speichern, die gesichert wird. In diesem Artikel zeigen wir, wie wir auf die Anlagen von Outlook-E-Mails zugreifen können. Dazu nutzen wir die Outlook-Bibliothek und greifen per VBA auf die Attachments-Auflistung des Mail-Item-Objekts zu.

Weiterlesen

Dateien und Ordner auswählen per FileDialog

Wenn Du mit VBA programmierst, wirst Du immer wieder mit Dateien arbeiten. Eine der Hauptaufgaben dabei ist, zu öffnende Dateien auszuwählen, Verzeichnisse zu selektieren oder einen Namen für eine zu speichernde Datei festzulegen. Alles drei lässt sich mit verschiedenen Methoden erledigen, aber es gibt eine Klasse, die alles gleichzeitig anbietet – und zwar die FileDialog-Klasse der Office-Bibliothek. In diesem Artikel schauen wir uns an, wie Du Dateidialoge für die verschiedenen Anwendungszwecke öffnen und auswerten kannst.

Weiterlesen

Outlook: Ordner per VBA im Griff

Bei einer frischen Outlook-Installation ist die Ordner-Hierarchie recht übersichtlich. Je mehr E-Mails man mit Outlook erhält oder je mehr man mit den übrigen Objekten arbeitet, umso mehr Ordner legt man in den bereits vorhandenen Ordnern als Unterordnern an. Für uns ist natürlich vor allem interessant, wie wir per VBA auf die einzelnen Ordner zugreifen, Ordner ermitteln, anlegen, bearbeiten oder auch löschen. Interessant ist auch, gezielt nach einem Ordner zu suchen und diesen zu referenzieren. Gegebenenfalls möchten wir auch einmal alle vorhandenen Ordner durchlaufen, um die enthaltenen Elemente zu verarbeiten. Wie all dies funktioniert, zeigen wir im vorliegenden Artikel!

Weiterlesen